static FT_Error ft_face_get_mm_service( FT_Face face, FT_Service_MultiMasters *aservice ) { FT_Error error; *aservice = NULL; if ( !face ) return FT_THROW( Invalid_Face_Handle ); error = FT_ERR( Invalid_Argument ); if ( FT_HAS_MULTIPLE_MASTERS( face ) ) { FT_FACE_LOOKUP_SERVICE( face, *aservice, MULTI_MASTERS ); if ( *aservice ) error = FT_Err_Ok; } return error; }
/* check the format */ static FT_Service_PfrMetrics ft_pfr_check( FT_Face face ) { FT_Service_PfrMetrics service; FT_FACE_LOOKUP_SERVICE( face, service, PFR_METRICS ); return service; }
FT_Get_WinFNT_Header( FT_Face face, FT_WinFNT_HeaderRec *header ) { FT_Service_WinFnt service; FT_Error error; error = FT_Err_Invalid_Argument; if ( face != NULL ) { FT_FACE_LOOKUP_SERVICE( face, service, WINFNT ); if ( service != NULL ) { error = service->get_header( face, header ); } } return error; }
FT_Get_WinFNT_Header( FT_Face face, FT_WinFNT_HeaderRec *header ) { FT_Service_WinFnt service; FT_Error error; if ( !face ) return FT_THROW( Invalid_Face_Handle ); if ( !header ) return FT_THROW( Invalid_Argument ); FT_FACE_LOOKUP_SERVICE( face, service, WINFNT ); if ( service ) error = service->get_header( face, header ); else error = FT_THROW( Invalid_Argument ); return error; }