- Add Font Embedding Dll (it is necessary for Iron and Chrome)

svn path=/trunk/; revision=40644
This commit is contained in:
Dmitry Chapyshev 2009-04-22 08:51:09 +00:00
parent c218692561
commit 7699f9cb05
8 changed files with 541 additions and 0 deletions

View file

@ -13,6 +13,7 @@
<property name="BASEADDRESS_WLANAPI" value="0x470F0000" />
<property name="BASEADDRESS_PIDGEN" value="0x473e0000" />
<property name="BASEADDRESS_DWMAPI" value="0x4A3F0000" />
<property name="BASEADDRESS_T2EMBED" value="0x4b310000" />
<property name="BASEADDRESS_LOADPERF" value="0x4B920000" />
<property name="BASEADDRESS_MPRAPI" value="0x4C400000" />
<property name="BASEADDRESS_MSFTEDIT" value="0x4b460000" />

View file

@ -412,6 +412,7 @@ dll\win32\stdole32.tlb\stdole32.tlb 1
dll\win32\sti\sti.dll 1
dll\win32\sxs\sxs.dll 1
dll\win32\syssetup\syssetup.dll 1
dll\win32\t2embed\t2embed.dll 1
dll\win32\tapi32\tapi32.dll 1
dll\win32\tapiui\tapiui.dll 1
dll\win32\traffic\traffic.dll 1

View file

@ -0,0 +1,205 @@
/*
* PROJECT: Font Embedding Dll
* FILE: dll\win32\t2embed\t2embed.c
* PURPOSE: Main file
* PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org)
*/
#include <windows.h>
#include <t2embapi.h>
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(t2embed);
LONG
WINAPI
TTCharToUnicode(HDC hDC,
UCHAR* pucCharCodes,
ULONG ulCharCodeSize,
USHORT* pusShortCodes,
ULONG ulShortCodeSize,
ULONG ulFlags)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTDeleteEmbeddedFont(HANDLE hFontReference,
ULONG ulFlags,
ULONG* pulStatus)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTEmbedFont(HDC hDC,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
USHORT* pusCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTEmbedFontFromFileA(HDC hDC,
LPCSTR szFontFileName,
USHORT usTTCIndex,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
USHORT* pusCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTEnableEmbeddingForFacename(LPSTR lpszFacename,
BOOL bEnable)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTGetEmbeddedFontInfo(ULONG ulFlags,
ULONG* pulPrivStatus,
ULONG ulPrivs,
ULONG* pulStatus,
READEMBEDPROC lpfnReadFromStream,
LPVOID lpvReadStream,
TTLOADINFO* pTTLoadInfo)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTGetEmbeddingType(HDC hDC,
ULONG* pulPrivStatus)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTIsEmbeddingEnabled(HDC hDC,
BOOL* pbEnabled)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTIsEmbeddingEnabledForFacename(LPSTR lpszFacename,
BOOL* pbEnabled)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTLoadEmbeddedFont(HANDLE *phFontReference,
ULONG ulFlags,
ULONG* pulPrivStatus,
ULONG ulPrivs,
ULONG* pulStatus,
READEMBEDPROC lpfnReadFromStream,
LPVOID lpvReadStream,
LPWSTR szWinFamilyName,
LPSTR szMacFamilyName,
TTLOADINFO* pTTLoadInfo)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTRunValidationTests(HDC hDC,
TTVALIDATIONTESTPARAMS* pTestParam)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTEmbedFontEx(HDC hDC,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
ULONG* pulCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTRunValidationTestsEx(HDC hDC,
TTVALIDATIONTESTPARAMSEX* pTestParam)
{
UNIMPLEMENTED;
return E_NONE;
}
LONG
WINAPI
TTGetNewFontName(HANDLE* phFontReference,
LPWSTR szWinFamilyName,
long cchMaxWinName,
LPSTR szMacFamilyName,
long cchMaxMacName)
{
UNIMPLEMENTED;
return E_NONE;
}
BOOL
WINAPI
DllMain(IN HINSTANCE hinstDLL,
IN DWORD dwReason,
IN LPVOID lpvReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hinstDLL);
break;
}
return TRUE;
}

View file

@ -0,0 +1,13 @@
<module name="t2embed" type="win32dll" baseaddress="${BASEADDRESS_T2EMBED}" installbase="system32" installname="t2embed.dll" unicode="yes">
<importlibrary definition="t2embed.spec" />
<include base="t2embed">.</include>
<include base="ReactOS">include/reactos/wine</include>
<library>kernel32</library>
<library>gdi32</library>
<library>user32</library>
<library>advapi32</library>
<library>version</library>
<library>wine</library>
<file>t2embed.c</file>
<file>t2embed.rc</file>
</module>

View file

@ -0,0 +1,7 @@
#include <windows.h>
#define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "Font Embedding Dll\0"
#define REACTOS_STR_INTERNAL_NAME "t2embed\0"
#define REACTOS_STR_ORIGINAL_FILENAME "t2embed.dll\0"
#include <reactos/version.rc>

View file

@ -0,0 +1,25 @@
@ stdcall TTCharToUnicode(ptr ptr long ptr long long)
@ stdcall TTDeleteEmbeddedFont(ptr long ptr)
@ stdcall TTEmbedFont(ptr long long ptr ptr ptr ptr ptr long long ptr)
@ stdcall TTEmbedFontFromFileA(ptr str long long long ptr ptr ptr ptr ptr long long ptr)
@ stdcall TTEnableEmbeddingForFacename(str long)
@ stdcall TTGetEmbeddedFontInfo(long ptr long ptr ptr ptr ptr)
@ stdcall TTGetEmbeddingType(ptr ptr)
@ stdcall TTIsEmbeddingEnabled(ptr ptr)
@ stdcall TTIsEmbeddingEnabledForFacename(str ptr)
@ stdcall TTLoadEmbeddedFont(ptr long ptr long ptr ptr ptr wstr str ptr)
@ stdcall TTRunValidationTests(ptr ptr)
@ stub _TTCharToUnicode@24
@ stub _TTDeleteEmbeddedFont@12
@ stub _TTEmbedFont@44
@ stub _TTEmbedFontFromFileA@52
@ stub _TTEnableEmbeddingForFacename@8
@ stub _TTGetEmbeddedFontInfo@28
@ stub _TTGetEmbeddingType@8
@ stub _TTIsEmbeddingEnabled@8
@ stub _TTIsEmbeddingEnabledForFacename@8
@ stub _TTLoadEmbeddedFont@40
@ stub _TTRunValidationTests@8
@ stdcall TTEmbedFontEx(ptr long long ptr ptr ptr ptr ptr long long ptr)
@ stdcall TTRunValidationTestsEx(ptr ptr)
@ stdcall TTGetNewFontName(ptr wstr long str long)

View file

@ -511,6 +511,9 @@
<directory name="syssetup">
<xi:include href="syssetup/syssetup.rbuild" />
</directory>
<directory name="t2embed">
<xi:include href="t2embed/t2embed.rbuild" />
</directory>
<directory name="tapi32">
<xi:include href="tapi32/tapi32.rbuild" />
</directory>

View file

@ -0,0 +1,286 @@
#ifndef __T2EMBED_API_H
#define __T2EMBED_API_H
#ifndef CHARSET_UNICODE
#define CHARSET_UNICODE 1
#define CHARSET_DEFAULT 1
#define CHARSET_SYMBOL 2
#define CHARSET_GLYPHIDX 3
#endif
#ifndef EMBED_PREVIEWPRINT
#define EMBED_PREVIEWPRINT 1
#define EMBED_EDITABLE 2
#define EMBED_INSTALLABLE 3
#define EMBED_NOEMBEDDING 4
#endif
#ifndef LICENSE_INSTALLABLE
#define LICENSE_INSTALLABLE 0x0
#define LICENSE_DEFAULT 0x0
#define LICENSE_NOEMBEDDING 0x2
#define LICENSE_PREVIEWPRINT 0x4
#define LICENSE_EDITABLE 0x8
#endif
#ifndef TTEMBED_RAW
#define TTEMBED_RAW 0x0
#define TTEMBED_SUBSET 0x1
#define TTEMBED_TTCOMPRESSED 0x4
#define TTEMBED_FAILIFVARIATIONSIMULATED 0x10
#define TTEMBED_EMBEDEUDC 0x20
#define TTEMBED_VALIDATIONTESTS 0x40
#define TTEMBED_WEBOBJECT 0x80
#define TTEMBED_ENCRYPTDATA 0x10000000
#endif
#ifndef E_NONE
#define E_NONE 0x0
#endif
#ifndef E_CHARCODECOUNTINVALID
#define E_CHARCODECOUNTINVALID 0x2
#define E_CHARCODESETINVALID 0x3
#define E_DEVICETRUETYPEFONT 0x4
#define E_HDCINVALID 0x6
#define E_NOFREEMEMORY 0x7
#define E_FONTREFERENCEINVALID 0x8
#define E_NOTATRUETYPEFONT 0xA
#define E_ERRORACCESSINGFONTDATA 0xC
#define E_ERRORACCESSINGFACENAME 0xD
#define E_ERRORUNICODECONVERSION 0x11
#define E_ERRORCONVERTINGCHARS 0x12
#define E_EXCEPTION 0x13
#define E_RESERVEDPARAMNOTNULL 0x14
#define E_CHARSETINVALID 0x15
#define E_WIN32S_NOTSUPPORTED 0x16
#define E_FILE_NOT_FOUND 0x17
#define E_TTC_INDEX_OUT_OF_RANGE 0x18
#define E_INPUTPARAMINVALID 0x19
#endif
#ifndef E_ERRORCOMPRESSINGFONTDATA
#define E_ERRORCOMPRESSINGFONTDATA 0x100
#define E_FONTDATAINVALID 0x102
#define E_NAMECHANGEFAILED 0x103
#define E_FONTNOTEMBEDDABLE 0x104
#define E_PRIVSINVALID 0x105
#define E_SUBSETTINGFAILED 0x106
#define E_READFROMSTREAMFAILED 0x107
#define E_SAVETOSTREAMFAILED 0x108
#define E_NOOS2 0x109
#define E_T2NOFREEMEMORY 0x10A
#define E_ERRORREADINGFONTDATA 0x10B
#define E_FLAGSINVALID 0x10C
#define E_ERRORCREATINGFONTFILE 0x10D
#define E_FONTALREADYEXISTS 0x10E
#define E_FONTNAMEALREADYEXISTS 0x10F
#define E_FONTINSTALLFAILED 0x110
#define E_ERRORDECOMPRESSINGFONTDATA 0x111
#define E_ERRORACCESSINGEXCLUDELIST 0x112
#define E_FACENAMEINVALID 0x113
#define E_STREAMINVALID 0x114
#define E_STATUSINVALID 0x115
#define E_PRIVSTATUSINVALID 0x116
#define E_PERMISSIONSINVALID 0x117
#define E_PBENABLEDINVALID 0x118
#define E_SUBSETTINGEXCEPTION 0x119
#define E_SUBSTRING_TEST_FAIL 0x11A
#define E_FONTVARIATIONSIMULATED 0x11B
#define E_FONTVALIDATEFAIL 0x11C
#define E_FONTFAMILYNAMENOTINFULL 0x11D
#endif
#ifndef E_ADDFONTFAILED
#define E_ADDFONTFAILED 0x200
#define E_COULDNTCREATETEMPFILE 0x201
#define E_FONTFILECREATEFAILED 0x203
#define E_WINDOWSAPI 0x204
#define E_FONTFILENOTFOUND 0x205
#define E_RESOURCEFILECREATEFAILED 0x206
#define E_ERROREXPANDINGFONTDATA 0x207
#define E_ERRORGETTINGDC 0x208
#define E_EXCEPTIONINDECOMPRESSION 0x209
#define E_EXCEPTIONINCOMPRESSION 0x20A
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned long(WINAPIV *WRITEEMBEDPROC)
(
void* lpvWriteStream,
const void* lpvBuffer,
const unsigned long cbBuffer
);
typedef unsigned long(WINAPIV *READEMBEDPROC)
(
void* lpvReadStream,
void* lpvBuffer,
const unsigned long cbBuffer
);
typedef struct
{
unsigned long ulStructSize;
long lTestFromSize;
long lTestToSize;
unsigned long ulCharSet;
unsigned short usReserved1;
unsigned short usCharCodeCount;
unsigned short* pusCharCodeSet;
} TTVALIDATIONTESTPARAMS;
typedef struct
{
unsigned long ulStructSize;
long lTestFromSize;
long lTestToSize;
unsigned long ulCharSet;
unsigned short usReserved1;
unsigned short usCharCodeCount;
unsigned long* pulCharCodeSet;
} TTVALIDATIONTESTPARAMSEX;
typedef struct
{
unsigned short usStructSize;
unsigned short usRootStrSize;
unsigned short *pusRootStr;
} TTEMBEDINFO;
typedef struct
{
unsigned short usStructSize;
unsigned short usRefStrSize;
unsigned short *pusRefStr;
} TTLOADINFO;
LONG
WINAPI
TTCharToUnicode(HDC hDC,
UCHAR* pucCharCodes,
ULONG ulCharCodeSize,
USHORT* pusShortCodes,
ULONG ulShortCodeSize,
ULONG ulFlags);
LONG
WINAPI
TTDeleteEmbeddedFont(HANDLE hFontReference,
ULONG ulFlags,
ULONG* pulStatus);
LONG
WINAPI
TTEmbedFont(HDC hDC,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
USHORT* pusCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo);
LONG
WINAPI
TTEmbedFontFromFileA(HDC hDC,
LPCSTR szFontFileName,
USHORT usTTCIndex,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
USHORT* pusCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo);
LONG
WINAPI
TTEnableEmbeddingForFacename(LPSTR lpszFacename,
BOOL bEnable);
LONG
WINAPI
TTGetEmbeddedFontInfo(ULONG ulFlags,
ULONG* pulPrivStatus,
ULONG ulPrivs,
ULONG* pulStatus,
READEMBEDPROC lpfnReadFromStream,
LPVOID lpvReadStream,
TTLOADINFO* pTTLoadInfo);
LONG
WINAPI
TTGetEmbeddingType(HDC hDC,
ULONG* pulPrivStatus);
LONG
WINAPI
TTIsEmbeddingEnabled(HDC hDC,
BOOL* pbEnabled);
LONG
WINAPI
TTIsEmbeddingEnabledForFacename(LPSTR lpszFacename,
BOOL* pbEnabled);
LONG
WINAPI
TTLoadEmbeddedFont(HANDLE *phFontReference,
ULONG ulFlags,
ULONG* pulPrivStatus,
ULONG ulPrivs,
ULONG* pulStatus,
READEMBEDPROC lpfnReadFromStream,
LPVOID lpvReadStream,
LPWSTR szWinFamilyName,
LPSTR szMacFamilyName,
TTLOADINFO* pTTLoadInfo);
LONG
WINAPI
TTRunValidationTests(HDC hDC,
TTVALIDATIONTESTPARAMS* pTestParam);
LONG
WINAPI
TTEmbedFontEx(HDC hDC,
ULONG ulFlags,
ULONG ulCharSet,
ULONG* pulPrivStatus,
ULONG* pulStatus,
WRITEEMBEDPROC lpfnWriteToStream,
LPVOID lpvWriteStream,
ULONG* pulCharCodeSet,
USHORT usCharCodeCount,
USHORT usLanguage,
TTEMBEDINFO* pTTEmbedInfo);
LONG
WINAPI
TTRunValidationTestsEx(HDC hDC,
TTVALIDATIONTESTPARAMSEX* pTestParam);
LONG
WINAPI
TTGetNewFontName(HANDLE* phFontReference,
LPWSTR szWinFamilyName,
long cchMaxWinName,
LPSTR szMacFamilyName,
long cchMaxMacName);
#ifdef __cplusplus
}
#endif
#endif /* __T2EMBED_API_H */