ISO/IEC JTC1/SC34N0020

ISO/IEC JTC1/SC34
Document Description and Processing Languages

Title: Font Services -- Abstract Service Definition
Source: Project Editors; Toru Takasawa, Yushi Komachi
Project: JTC1.34.33
Status of document: DTR text
Requested action: DTR procedure
Date Nov. 10, 1998

Font Services -- Abstract Service Definition


Introduction

The technology to access large font libraries has become an increasingly important concern of document processing, electronic publishing, and application support facilities such as printing and display services.

This Technical Report specifies a system-independent interface to font services that provides for distribution, management and use of font resources.

This Technical Report is organized as follows:

  • The general model of font services and its relationship to other parts of the document processing model are specified.
  • The Abstract Font Service Interface (AFSI), which defines the facilities to access font resources in a system-independent way, is specified.
  • Statements covering the conformance of font service systems are provided.


1 Scope and Field of Application

1.1 Scope

This Technical Report provides the access facilities which can be used for creation, distribution, management, and use of font resources conforming to the architecture of ISO/IEC 9541.

This Technical Report is intended to be used in a variety of configurations meeting a variety of connectivity needs, including communication protocols, application programming interfaces, and application services.

This Technical Report defines an abstract interface to the font access facilities. This Technical Report will not specify the concrete syntax for a language binding of font service facilities, nor the concrete protocol used to communicate between the systems that provides or uses the font service facilities.

1.2 Field of Application

This Technical Report is intended for use in a wide variety of document processing environments, including:

  • authoring;
  • formatting and page layout;
  • printing and display services;
  • electronic publishing via removable media and/or information network.


2 Normative References

The following standards contain provisions that, through reference in this text, constitute provisions of this Technical Report. At the time of publication, the editions indicated are valid. All standards are subject to revision, and parties to agreements based on this Technical Report are encouraged to investigate the possibility of applying the most recent editions of the standards indicated below. Members of IEC and ISO maintain registers of currently valid International Standards.

  • ISO/IEC 9541-1:1991, Information technology -- Font information interchange -- Part 1: Architecture.
  • ISO/IEC 9541-3:1994, Information technology -- Font information interchange -- Part 3: Glyph Shape Representation.
  • ISO/IEC 10179:1996, Information technology -- Text and Office Systems -- Document Style Semantics and Specification Language (DSSSL).
  • ISO/IEC 10180:1995, Information technology -- Text Communication -- Standard Page Description Language (SPDL).


3 Definitions

For the purposes of this Technical Report, the following definitions apply.

3.1 font manager:A font service user that installs font resources into a system environment, manages the font usage and administers associated contracts (regarding access, royalties, etc.).

3.2 font property: A property as defined in ISO/IEC 9541-1.

3.3 font provider: A font service user that designs typefaces, creates new font resources for sale and distribution (Design Source) or acquires font resources on consignment or for re-marketing with or without intervening modification (Data Source).

3.4 font query: A query which is sent from a font service user to a font service entity to get or modify some font resource information.

3.5 font requester: A font service user that requests font resource information to create format, print, or display documents in a single or multi-system environment.

3.6 font resource information : A block of information about a font resource or some font resources which is returned from a font service entity to a font service user as the result of a font query.

3.7 font service: An interchange facility between a font service user and a server of font resources.

3.8 font service API: The interface between a font service user and a font service entity.

3.9 font service entity : An entity (or set of connected entities) which provides access facilities to resolve requests from font service users.

3.10 font service protocol : The relationship between font service entities to convey font service commands and responses.

3.11 font substitution : Substitution of an alternative font resource for a specified font resource which is not available.

3.12 font service user : A person and/or application software that provides requests, or manages font information in a computer system or network.

3.13 glyph association : the mapping or association of character codes (usually in an unformatted document data stream) to the glyph information contained in a font resource.

3.14 glyph substitution : Substitution (usually in a formatted document data stream) of an alternative glyph for a specified glyph which is not available in a requested font resource.


4 Font Service Model

4.1 Font Service User Categories

Font service users are classified in the following three categories. In this Technical Report, the term "font service user"is used to represent all kinds of people and application software in these categories.

  • Font Providers
    People (and Application software) that design typefaces, create new font resources for sale and distribution (Design Source) or acquires font resources on consignment or for re-marketing with or without intervening modification (Data Source).
  • Font Managers
    People (and Application software) that installs font resources into a system environment, manages the font usage and administers associated contracts (regarding access, royalties, etc.).
  • Font Requesters
    People (and Application software) that requests font resource information to create format, print, or display documents in a single or multi-system environment.

4.2 Font Service Entity

Font service entity is an entity which provides facilities to access font resource information for font service users. This entity will be implemented as a program or component of a processing system which receives the font queries from font service users and returns font information.

A font service entity manages a set of font resources. Any information retrieval and/or modification on one of those font resources shall be done by this entity. In the case that a font service user sends a font query to a font service entity to get some information from a font resource which is not directly managed by the font service entity, the entity may send a font query to get the information from another font service entity. In such a case, a font service entity itself may act as a font service user to another font service entity.

Figure 4-1 shows a simplified model of the relationship between a font service entity and font service users.


Figure 4-1: Relationship between font service entity and font service users.

Figure 4-2 shows the relationship between the font service entity and the ISO/IEC JTC1/SC18 document processing architecture.

Figure 4-2: Relationship between font service entity and SC18 document processing architectures.

The font resource information requested by these processes is different process by process. Formatting and Layout Process requests the description and metrics information. Presentation Process requests all the font resource information (description information, metrics information, and glyph shape information).

There may be a process called Font Installation and Maintenance Process, which provides new font resources to be managed by the font service entity. This process also executes the usage monitoring and the access control of each font resource.

4.3 Abstract Font Service Interface (AFSI)

This Technical Report defines the Abstract Font Service Interface (AFSI), which specifies the abstract interface between a font service user and a font service entity.

This Technical Report defines the AFSI as a set of specifications of "primitives ".A primitive is a unit of communications between the font service entity and font service users. In this part of this International Standard, each primitive is defined as an abstract service which takes zero or more parameters, and returns zero or more results. Some primitives modify the internal data objects and/or the status of the font service entity as the side effect.


5 Data Types

This clause defines data types used in the definitions of the Abstract Font Service Interface (AFSI).

Types used in AFSI are classified in two categories, base types and composite types. Base types are simple, elemental types and values of base types have no subordinate structures. Composite types are structures constructed from base types and/or other composite types.

5.1 Base Types

5.1.1 Boolean

The set of values of type Boolean consists of two values, true and false. These values represent logical value true and false, respectively.

5.1.2 Integer

Each value of type Integer represents an integer number within the range -232 to 232 - 1 inclusive.

5.1.3 Cardinal

Each value of type Cardinal represents an unsigned integer number within the range 0 to 232 - 1 inclusive.

5.1.4 Octet

Each value of type Octet represents an 8-bit byte data.

5.1.5 Handle

Each value of type Handle represents an unsigned integer number within the range 0 to 232 - 1 inclusive, which uniquely identifies a data object that exists in the font service entity. Font service users can access these data objects through Handles. The value 0 (zero) is reserved to indicate a NULL handle.

5.2 Composite Types

5.2.1 OctetString

A value of type OctetString is an ordered sequence of octets.

5.2.2 Vector

A value of type Vector is an ordered sequence of values. Each value contained in a Vector may be a value of any type defined in this Technical Report.

5.2.3 PropertyList

A value of type PropertyList represents a corresponding value of the type property-list which is defined in ISO/IEC 9541-1.

5.2.4 UserInformationList

A value of type UserInformationList represents a corresponding value of the type user-information-list which is defined in detail, according to the following structure:

5.2.5 LicenseInformationList

A value of type LicenseInformationList represents a corresponding value of the type license-information-list which is defined in defined in detail, according to the following structure:


6 Notation

This clause defines the notation used to define each primitive in clause 7.

For each primitive in this International Standard, the primitive description specifies:

  • the number and types of parameters required to invoke the primitive;
  • the number and types of results;
  • the relationship between the parameters and the results;
  • any other effects the execution of the primitive has upon the internal data objects and/or the status of the font service entity.


7 Abstract Font Service Interface (AFSI)

7.1 Font Service Session Control Primitives

7.1.1 OpenSession

The OpenSession primitive takes one parameter:

  • user-id: OctetString;

and returns two result:

  • status: Cardinal;
  • session-id: Handle.

The OpenSession primitive establishes a session between a font service user and the font service entity for the purpose of accessing the font resource information.

The result status represents the completion status of the primitive. It takes one of the following values:

  • 0 -- A session is opened successfully;
  • 1 -- Failed to open a session;
  • 10 -- Opening a session is denied.

The result session-id represents the handle which identifies the newly opened font service session. This result is void when the value of the result status is other than OK.

The value of session-id must be specified as one of the parameters for all other AFSI primitives.

7.1.2 CloseSession

The CloseSession primitive takes one parameter:

  • session-id: Handle;

and returns one result:

  • status: Cardinal.

The CloseSession primitive closes an opened session between a font service user and the font service entity.

The parameter session-id specifies an open session to be closed. The value of this parameter must be a value returned from the primitive OpenSession as the result session-id.

The result status represents the completion status of the primitive. It takes one of the following values:

  • 0 -- The specified session is closed successfully;
  • 2 -- The parameter session-id is invalid;
  • 3 -- Failed to close the session (the parameter session-id is valid).

7.2 Font Reference Primitives

7.2.1 AssignFontReference

The AssignFontReference primitive takes two parameters:

  • session-id: Handle;
  • property-list: PropertyList;

and returns two results:

  • status: Cardinal;
  • font-reference: Handle.

The AssignFontReference primitive assigns the specified property-list to the specified font-reference. After the successful completion of this primitive, the assigned font-reference may be used as a parameter for query primitives instead of the property-list itself.

The result status represents the completion status of the primitive. It takes one of the following values:

  • 0 -- The assignment is successfully;
  • 2 -- The parameter session-id is invalid.

7.2.2 ClearFontReference

The ClearFontReference primitive takes two parameters:

  • session-id: Handle;
  • font-reference: Handle;

and returns one result:

  • status: Cardinal.

The ClearFontReferenceName primitive cancels the assignment of the specified font-reference to a property list.

7.2.3 ListFontReferenceProperties

The ListFontReferenceProperties primitive takes two parameters:

  • session-id: Handle;
  • font-reference: Handle;

and returns two results:

  • status: Cardinal;
  • property-list: PropertyList.

The ListFontReferenceProperties primitive return the property list which is associated with the specified font-reference by the AssignFontReference primitive.

7.2.4 ListAllFontReferences

The ListAllFontReferences primitive takes one parameter:

  • session-id: Handle;

and returns two results:

  • status: Cardinal;
  • font-reference-list: Vector of Handles.

The ListAllFontReferences primitive return the list of all font references which are currently associated with property lists.

7.3 Availability Check Primitives

7.3.1 FindFontResource

The FindFontResource primitive takes two parameters:

  • session-id: Handle;
  • font-reference: Handle or PropertyList;

and returns two results:

  • status: Cardinal;
  • font-resource-list: Vector of Handle.

The FindFontResource primitive finds font resources which satisfy the conditions specified by the parameter font-reference, and returns the list of Handles of such font resources. The parameter font-reference may be specified as a Handle (font reference) or a PropertyList.

7.4 Font Properties Query Primitives

7.4.1 GetFontProperty

The GetFontProperty primitive takes three parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • property-list-specification: PropertyList;

and returns two results:

  • status: Cardinal;
  • required-property: PropertyList.

The GetFontProperty primitive retrieves the required properties from the font resource. The specification of the required properties is given by a PropertyList which contains property name and other conditions (if any). The list of all properties which satisfies the specification will be returned.

NOTE: Since any property name defined in ISO/IEC 9541-1 can be specified in the parameter propety-list-specification, this single primitive may be used to get any property contained in the font resource.

7.5 Font Resource Management Primitives

7.5.1 PutFontProperty

The PutFontProperty primitive takes four parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • property-list-specification: PropertyList;
  • new-property: PropertyList;

and returns one result:

  • status: Cardinal.

The PutFontProperty primitive replaces all of the specified properties in the font resource with the new property. The specification of the properties which are the subject to replacement is given by a PropertyList which contains the property name and other conditions (if any). All the properties which satisfies the specification will be replaced.

NOTE: Since any property name defined in ISO/IEC 9541-1 can be specified in the parameter propety-list-specification, this single primitive may be used to replace any property contained in the font resource.

7.5.2 CreateFontResource

The CreateFontResource primitive takes one parameter:

  • session-id: Handle;

and returns two results:

  • status: Cardinal;
  • new-font-resource: Handle.

The CreateFontResource primitive installs the new font resource into the font resource file with the font-property.

The result status represents the completion status of the primitive. It takes one of the following values:

  • 0 - The font resource is created successfully;
  • 2 -- The parameter session-id is invalid.

7.6 Font Service User Manegement Primitives

7.6.1 GetUserInformation

The GetUserInformation primitive takes three parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • user-information-list-specification: UserInformationList;

and returns two results:

  • status: Cardinal;
  • required-user-information-list: UserInformationList.

The GetUserInformation primitive retrieves the required-user-information-list of the font-resource. The specification of the required user information is given by UserInformationList which contains the user names and other user information. The list of all user information which satisfy the specification will be returned.

7.6.2 GetLisenceInformation

The GetLicenseInformation primitive takes three parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • license-information-list-specification: LicenseInformationList;

and returns two results:

  • status: Cardinal;
  • required-license-information-list: LicenseInformationList.

The GetLicenseInformation primitive retrieves the required-license-information-list of the font-resource. The specification of the required license information is given by LicenseInformationList which contains the license owner names and other license information. The list of all license information which satisfy the specification will be returned.

7.6.3 PutUserInformation

The PutUserInformation primitive takes four parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • user-information-list-specification: UserInformationList;
  • new-user-information-list: UserInformationList;

and returns one result:

  • status: Cardinal.

The PutUserInformation primitive replaces all of the specified user-information-list in the font resource with the new user-information-list. The specification of the user-information-list which are the subject to replacement is given by user-information-list which contains the user name and other user information. All user-information which satisfies the specification will be replaced.

7.6.4 PutLicenseInformation

The PutLicenseInformation primitive takes four parameters:

  • session-id: Handle;
  • font-resource: Handle;
  • license-information-list-specification: LicenseInformationList;
  • new-license-information-list : LicenseInformationList;

and returns one result:

  • status : Cardinal.

The PutLicenseInformation primitive replaces all of the specified license-information-list in the font resource with the new license-information-list. The specification of the license-information-list which are the subject to replacement is given by license-information-list-specification which contains the license owner names and other license information. All license-information which satisfies the specification will be replaced.







Annex A
(informative)
The Abstract Font Service Interface C Language Binding

A.1 Data Types

A.1.1 Base Types

AFS_Boolean

A AFS_Boolean is a 16-bit signed integer, either true (1) or false (0) ; all other values are undefined.

C Binding

typedef short AFS_Boolean;

AFS_Int32

A AFS_Int32 is a 32-bit signed integer within the range -231 to 231-1

C Binding

typedef long AFS_Int32;

AFS_Card32

A AFS_Card32 is a 32-bit unsigned integer within the range 0 to 232-1.

C Binding

typedef unsigned AFS_Card32;

AFS_Octet

A AFS_Octet is a 8-bit value.

C Binding

typedef char AFS_Octet;

AFS_Handle

A AFS_Handle is a 32-bit unsigned integer within the range 0 to 232-1 which uniquely identifies for a private data structure managed by the Font Service Entity.

C Binding

typedef AFS_Card32 AFS_Handle;

A.1.2 Composite Types

AFS_OctetString

AFS_OctetString is a fixed length string consists of an ordered sequence of AFS_Octet[s].

C Binding

typedef AFS_Octet AFS_OctetString[AFS_MAX_STRING];

AFS_Property

AFS_Property is a data structure for a property defined in ISO/IEC 9541-1. A property represents font resource information. member propName in AFS_Property stores the unambiguous property name. propType stores the data type of the property value. When the data type is numerical data (except binary stream), the property value is stored in propValue1 and propValue2. In case of string or binary stream data, it is stored in other area, and propValue1 stores offset value to the area that substantial data is stored, and propValues2 stores data length in byte.

C Binding

typedef struct {

AFS_OctetString propName;

AFS_Card32 propType;

AFS_Card32 propValue1;

AFS_Card32 propValue2;

} AFS_Property;

AFS_PropertyList

AFS_PropertyList is a list of zero or more related AFS_Property[s], the value of some other higher-level property, which may be specified to be ordered in a particular sequence.

C Binding

typedef AFS_Property *AFS_PropertyList ;

AFS_UserInformationList

AFS_UserInforamtionList is a data structure that represents User-Information-list.

AFS_LicenseInformationList

AFS_UserInforamtionList is a data structure that represents License-Information-list.


A.2 Application Program Interface

A.2.1 Font Service Session Control Functions

OpenSession

Syntax

AFS_Card32 AFSOpenSession(userID, pSessionID);

AFS_OctetString userID;

AFS_Handle *pSessionID;

Arguments

userID - User ID.

Access:read-only

pSessoinID - The Handle that uniquely identifies the session between a Font Service User and the Font Service Entity.

Access:write-only

Return Values

AFS_SUCCESS -- A session is opened successfully;

AFS_ACCESS_DENIED -- Access denied;

AFS_FAILURE -- Failed to open a session because of any reason.

Description

Establishes a session between a Font Service User and the Font Service Entity for accessing the font resource information. This function stores the unique handle in the address pointed by argument pSessionID.

This function should be called first before other AFSI functions called.

CloseSession

Syntax

AFS_Card32 AFSCloseSession(sessionID);

AFS_Handle sessionID;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

Return Values

AFS_SUCCESS -- The specified session is closed successfully;

AFS_SESSION_INVALID -- Argument session ID is invalid;

AFS_CLOSE_FAILED -- Failed to close the session (the argument session ID is valid).

Description

Closes a session between a Font Service User and the Font Service Entity.


A.2.2 Font Reference Functions

AssignFontReference

Syntax

AFS_Card32 AFSAssignFontReference(sessionID, propList, propString, pFontRef);

AFS_Handle sessionID;

AFS_PropertyList propList;

AFS_Octet *propString;

AFS_Handle *pFontRef;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

propList - A property-list.

Access:read-only

propString - property value stores string or binary stream data.

Access:read-only

pFontRef - A Pointer to the unique identifier specifies assigned property-list.

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID -- Argument session ID is invalid.

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Assigns the specified property-list to a Handle called font-reference. After the successful completion of this function, the assigned font-reference may be used as a parameter for query functions instead of the property-list itself.

ClearFontReference

Syntax

AFS_Card32 AFSClearFontReference(AFS_Handle sessionID, AFS_Handle fontRef);

AFS_Handle sessionID;

AFS_Handle fontRef;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRef - The Handle identifies the specified property-list.

Access:read-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_REFERENCE_INVALID-- Argument font-reference is invalid.

Description

Cancels the assignment of the specified font-reference to the property-list.

ListFontReferenceProperites

Syntax

AFS_Card32 AFSListFontReferenceProperties(sessionID, fontRef, pPropList, propString);

AFS_Handle sessionID;

AFS_Handle fontRef;

AFS_PropertyList *pPropList;

AFS_Octet *propString;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRef - The Handle identifies the specified property-list.

Access:read-only

pPropList - The property-list that is associated with fontRef.

Access:write-only

propString - The property value stores string or binary stream data.

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_REFERENCE_INVALID -- Argument font-reference is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Returns the property-list that is associated with the specified font-reference.

ListAllFontReferences

Syntax

AFS_Card32 AFSListAllFontReferences(sessionID, pFonRefVec);

AFS_Handle sessionID;

AFS_Handle *pFontRefVec;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

pFontRefVec - A Pointer to a array that stores font-reference[s] .

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Returns the list of all font-reference[s] assigned in the session.


A.2.3 Availability Check Functions

FindFontResource

Syntax

AFS_Card32 AFSFindFontResource(sessionID, fontRef, pFontResVec);

AFS_Handle sessionID;

AFS_Handle fontRef ;

AFS_Handle *pFontResVec;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRef - The Handle identifies the specified property-list for finding font resources.

Access:read-only

pFontResVec - A Pointer to array that stores found font resources.

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_REFERENCE_INVALID -- Argument font-reference is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Finds font resources match to the font-property specified the font-reference, and returns the list of such font resources.


A.2.4 Font Properties Query Functions

GetFontProperty

Syntax

AFS_Card32 AFSGetFontProperty(sessionID, fontRes, propList, propString);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_PropertyList propList;

AFS_Octet *propString;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resources.

Access:read-only

propList - The property-list specifies properties that retrieve from the Font Service Entity. And stores properties that satisfies the specification as output.

Access:read and write

propString - The property value stores string or binary stream data.

Access:read and write

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid.

Description

Retrieves the required properties from the font resource. The specification of the required properties is given by the argument propList and propString that contains property name and other conditions (if any), and the font resource is specified by the argument fontRes. The list of all properties that satisfies the specification will be returned.


A.2.5 Font Resource Management Functions

PutFontProperty

Syntax

AFS_Card32 AFSPutFontProperty(sessionID, fontRes, propList, propString, newPropList, newPropString);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_PropertyList propList;

AFS_Octet *propString;

AFS_PropertyList newPropList;

AFS_Octet *newPropString;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resource.

Access:read-only

propList - A property-list that specifies the properties to be replaced in the font resource.

Access:read-only

propString - A property value stores string or binary stream data, that depends on propList.

Access:read-only

newPropList - A property-list that put to the font resource.

Access:read-only

newPropString - A property value stores string or binary stream data, that depends on newPropList.

Access:read-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid;

AFS_ACCESS_DENIED -- Access denied;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Replaces all of the specified properties in the font resources with the new property. The specification of the properties that are the subject to replacement is given by the argument propList and propString that contains the property name and other conditions (if any). All the properties that satisfies the specification will be replaced.

CreateFontResource

Syntax

AFS_Card32 AFSPutFontResource(sessionID, pFontRes);

AFS_Card32 sessionID;

AFS_Handle *pFontRes;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

pFontRes - A Handle to a new font resource created in this function.

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Creates a new font resource.


A.2.6 Font Service User Management Functions

GetUserInfomation

Syntax

AFS_Card32 AFSGetUserInformation(sessionID, fontRes, userInfList);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_UserInformationList userInfList;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resource.

Access:read-only

userInfList - The user-information -list that retrieve from the Font Service Entity. And stores the user-information -list that satisfies the specification as output.

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Retrieves the required user-information-list from the font resource. The specification of the required user-information-list is given by the argument userInfList that contains the user names and other user information. The list of all user information that satisfy the specification will be returned.

GetLicenseInfomation

Syntax

AFS_Card32 AFSGetUserInformation(sessionID, fontRes, licenseInfList);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_LisenceInformationList licenseInfList;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resource.

Access:read-only

licenseInfList - The License-Information -list that retrieve from the Font Service Entity. And stores the License-Information -list that satisfies the specification as output.

Access:write-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Retrieves the required License-Information-list from the font resource. The specification of the required License-Information-list is given by the argument licenseInfList that contains the owner names and other license information. The list of all license information that satisfy the specification will be returned.

PutUserInformation

Syntax

AFS_Card32 AFSPutUserInformation(sessionID, fontRes, userInfList, newUserInfList);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_UserInformationList userInfList;

AFS_UserInformationList newUserInfList;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resource.

Access:read-only

userInfList - A user-information-list that specifies the user information to be replaced in the font resource.

Access:read-only

newUserInfList - A user-information-list that put to the font resource.

Access:read-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid;

AFS_ACCESS_DENIED -- Access denied;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Replaces all of the specified user information in the font resources with the new user information. The specification of the user information that are the subject to replacement is given by the argument userInfList that contains the user name and other user information. All the user information that satisfies the specification will be replaced.

PutLicenseInformation

Syntax

AFS_Card32 AFSPutLicenseInformation(sessionID, fontRes, licenseInfList, newLicenseInfList);

AFS_Handle sessionID;

AFS_Handle fontRes;

AFS_LicenseInformationList licenseInfList;

AFS_LicenseInformationList newLicenseInfList;

Arguments

sessionID - The Handle that identifies for a session that AFSOpenSession() returns.

Access:read-only

fontRes - The Handle that uniquely identifies the specifies font resource.

Access:read-only

licenseInfList - A license-information-list that specifies the license information to be replaced in the font resource.

Access:read-only

newlicenseInfList - A license-information-list that put to the font resource.

Access:read-only

Return Values

AFS_SUCCESS -- Successful;

AFS_SESSION_INVALID-- Argument session ID is invalid;

AFS_FONT_RESOURCE_INVALID-- Argument font resource is invalid;

AFS_ACCESS_DENIED -- Access denied;

AFS_MEMORY_ERROR -- Memory error occurred.

Description

Replaces all of the specified license information in the font resources with the new license information. The specification of the license information that are the subject to replacement is given by the argument licenseInfList that contains the license owner name and other license information. All the license information that satisfies the specification will be replaced.

A.3 Error codes

AFS_SUCCESS 0

AFS_FAILURE 1

AFS_SESSION_INVALID 2

AFS_CLOSE_FAILED 3

AFS_FONT_REFERENCE_INVALID 4

AFS_FONT_RESOURCE_INVALID 5

AFS_ACCESS_DENIED 10

AFS_MEMORY_ERROR 20