fontsub: Improve CreateFontPackage() stub for TTFCFP_SUBSET case.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2016-04-28 20:44:22 +03:00 committed by Alexandre Julliard
parent 179137c259
commit f997851600
2 changed files with 36 additions and 3 deletions

View File

@ -50,5 +50,16 @@ ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, u
written, flags, face_index, format, lang, platform, encoding, keep_list, keep_len, allocproc,
reallocproc, freeproc, reserved);
return ERR_GENERIC;
if (format != TTFCFP_SUBSET)
return ERR_GENERIC;
*dest = allocproc(src_len);
if (!*dest)
return ERR_MEM;
memcpy(*dest, src, src_len);
*dest_len = src_len;
*written = src_len;
return NO_ERROR;
}

View File

@ -27,14 +27,36 @@ typedef void *(__cdecl *CFP_ALLOCPROC)(size_t);
typedef void *(__cdecl *CFP_REALLOCPROC)(void *, size_t);
typedef void (__cdecl *CFP_FREEPROC)(void *);
#define TTFCFP_SUBSET 0
#define TTFCFP_SUBSET1 1
#define TTFCFP_DELTA 2
#define TTFCFP_UNICODE_PLATFORMID 0
#define TTFCFP_APPLE_PLATFORMID 1
#define TTFCFP_ISO_PLATFORMID 2
#define TTFCFP_MS_PLATFORMID 3
#define TTFCFP_STD_MAC_CHAR_SET 0
#define TTFCFP_SYMBOL_CHAR_SET 0
#define TTFCFP_UNICODE_CHAR_SET 1
#define TTFCFP_DONT_CARE 0xffff
#define TTFCFP_LANG_KEEP_ALL 0
#define TTFCFP_FLAGS_SUBSET 0x0001
#define TTFCFP_FLAGS_COMPRESS 0x0002
#define TTFCFP_FLAGS_TTC 0x0004
#define TTFCFP_FLAGS_GLYPHLIST 0x0008
#define ERR_GENERIC 1000
#define ERR_MEM 1005
ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, unsigned char **dest,
ULONG *dest_len, ULONG *written, const unsigned short flags, const unsigned short face_index,
const unsigned short format, const unsigned short lang, const unsigned short platform,
const unsigned short encoding, const unsigned short *keep_list, const unsigned short keep_len,
CFP_ALLOCPROC allocproc, CFP_REALLOCPROC reallocproc, CFP_FREEPROC freeproc, void *reserved);
#define ERR_GENERIC 1000
#ifdef __cplusplus
}
#endif