mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 06:26:00 +00:00
[T2EMBED] Sync with Wine Staging 1.9.11. CORE-11368
svn path=/trunk/; revision=71739
This commit is contained in:
parent
4db199664d
commit
4c898721f4
5 changed files with 101 additions and 22 deletions
|
@ -19,9 +19,13 @@
|
|||
|
||||
#define WIN32_NO_STATUS
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <wingdi.h>
|
||||
#include <winreg.h>
|
||||
#include <t2embapi.h>
|
||||
|
||||
#include <wine/debug.h>
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(t2embed);
|
||||
|
@ -70,16 +74,100 @@ LONG WINAPI TTEmbedFont(HDC hDC, ULONG ulFlags, ULONG ulCharSet, ULONG *pulPrivS
|
|||
|
||||
LONG WINAPI TTGetEmbeddingType(HDC hDC, ULONG *status)
|
||||
{
|
||||
FIXME("(%p %p) stub\n", hDC, status);
|
||||
if (status) *status = EMBED_NOEMBEDDING;
|
||||
return E_API_NOTIMPL;
|
||||
OUTLINETEXTMETRICW otm;
|
||||
|
||||
TRACE("(%p %p)\n", hDC, status);
|
||||
|
||||
if (!hDC)
|
||||
return E_HDCINVALID;
|
||||
|
||||
otm.otmSize = sizeof(otm);
|
||||
if (!GetOutlineTextMetricsW(hDC, otm.otmSize, &otm))
|
||||
return E_NOTATRUETYPEFONT;
|
||||
|
||||
if (!status)
|
||||
return E_PERMISSIONSINVALID;
|
||||
|
||||
if (otm.otmfsType == LICENSE_INSTALLABLE)
|
||||
*status = EMBED_INSTALLABLE;
|
||||
else if (otm.otmfsType & LICENSE_NOEMBEDDING)
|
||||
*status = EMBED_NOEMBEDDING;
|
||||
else if (otm.otmfsType & LICENSE_PREVIEWPRINT)
|
||||
*status = EMBED_PREVIEWPRINT;
|
||||
else if (otm.otmfsType & LICENSE_EDITABLE)
|
||||
*status = EMBED_EDITABLE;
|
||||
|
||||
return E_NONE;
|
||||
}
|
||||
|
||||
LONG WINAPI TTIsEmbeddingEnabledForFacename(LPCSTR facename, BOOL *enabled)
|
||||
{
|
||||
static const WCHAR exclusionlistW[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
|
||||
'S','h','a','r','e','d',' ','T','o','o','l','s','\\','t','2','e','m','b','e','d',0};
|
||||
DWORD index;
|
||||
HKEY hkey;
|
||||
LONG ret;
|
||||
|
||||
TRACE("(%s %p)\n", debugstr_a(facename), enabled);
|
||||
|
||||
if (!facename)
|
||||
return E_FACENAMEINVALID;
|
||||
|
||||
if (!enabled)
|
||||
return E_PBENABLEDINVALID;
|
||||
|
||||
*enabled = TRUE;
|
||||
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, exclusionlistW, 0, GENERIC_READ, &hkey))
|
||||
return E_NONE;
|
||||
|
||||
*enabled = TRUE;
|
||||
ret = ERROR_SUCCESS;
|
||||
index = 0;
|
||||
while (ret != ERROR_NO_MORE_ITEMS)
|
||||
{
|
||||
DWORD name_len, value_len, value, type;
|
||||
CHAR name[LF_FACESIZE];
|
||||
|
||||
name_len = sizeof(name)/sizeof(*name);
|
||||
value_len = sizeof(value);
|
||||
ret = RegEnumValueA(hkey, index++, name, &name_len, NULL, &type, (BYTE*)&value, &value_len);
|
||||
if (ret || type != REG_DWORD)
|
||||
continue;
|
||||
|
||||
if (!lstrcmpiA(name, facename))
|
||||
{
|
||||
*enabled = !!value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
RegCloseKey(hkey);
|
||||
|
||||
return E_NONE;
|
||||
}
|
||||
|
||||
LONG WINAPI TTIsEmbeddingEnabled(HDC hDC, BOOL *enabled)
|
||||
{
|
||||
FIXME("(%p %p) stub\n", hDC, enabled);
|
||||
if (enabled) *enabled = FALSE;
|
||||
return E_API_NOTIMPL;
|
||||
OUTLINETEXTMETRICA *otm;
|
||||
LONG ret;
|
||||
UINT len;
|
||||
|
||||
TRACE("(%p %p)\n", hDC, enabled);
|
||||
|
||||
if (!hDC)
|
||||
return E_HDCINVALID;
|
||||
|
||||
len = GetOutlineTextMetricsA(hDC, 0, NULL);
|
||||
if (!len)
|
||||
return E_ERRORACCESSINGFACENAME;
|
||||
|
||||
otm = HeapAlloc(GetProcessHeap(), 0, len);
|
||||
if (!otm)
|
||||
return E_NOFREEMEMORY;
|
||||
|
||||
GetOutlineTextMetricsA(hDC, len, otm);
|
||||
ret = TTIsEmbeddingEnabledForFacename(otm->otmpFaceName, enabled);
|
||||
HeapFree(GetProcessHeap(), 0, otm);
|
||||
return ret;
|
||||
}
|
||||
|
||||
LONG WINAPI TTDeleteEmbeddedFont(HANDLE hFontReference, ULONG flags, ULONG *status)
|
||||
|
|
|
@ -66,15 +66,6 @@ TTGetEmbeddedFontInfo(ULONG ulFlags,
|
|||
return E_NONE;
|
||||
}
|
||||
|
||||
LONG
|
||||
WINAPI
|
||||
TTIsEmbeddingEnabledForFacename(LPSTR lpszFacename,
|
||||
BOOL* pbEnabled)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
return E_NONE;
|
||||
}
|
||||
|
||||
LONG
|
||||
WINAPI
|
||||
TTRunValidationTests(HDC hDC,
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@ 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 TTDeleteEmbeddedFont(long long ptr)
|
||||
@ stdcall TTEmbedFont(long 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 TTGetEmbeddingType(long ptr)
|
||||
@ stdcall TTIsEmbeddingEnabled(long ptr)
|
||||
@ stdcall TTIsEmbeddingEnabledForFacename(str ptr)
|
||||
@ stdcall TTLoadEmbeddedFont(ptr long ptr long ptr ptr ptr wstr str ptr)
|
||||
@ stdcall TTRunValidationTests(ptr ptr)
|
||||
|
@ -17,7 +17,7 @@
|
|||
@ stub _TTGetEmbeddedFontInfo@28
|
||||
@ stdcall _TTGetEmbeddingType@8(long ptr) TTGetEmbeddingType
|
||||
@ stdcall _TTIsEmbeddingEnabled@8(long ptr) TTIsEmbeddingEnabled
|
||||
@ stub _TTIsEmbeddingEnabledForFacename@8
|
||||
@ stdcall _TTIsEmbeddingEnabledForFacename@8(str ptr) TTIsEmbeddingEnabledForFacename
|
||||
@ stdcall _TTLoadEmbeddedFont@40(ptr long ptr long ptr ptr ptr wstr str ptr) TTLoadEmbeddedFont
|
||||
@ stub _TTRunValidationTests@8
|
||||
@ stdcall TTEmbedFontEx(ptr long long ptr ptr ptr ptr ptr long long ptr)
|
||||
|
|
|
@ -186,7 +186,7 @@ reactos/dll/win32/stdole2.tlb # Synced to WineStaging-1.9.4
|
|||
reactos/dll/win32/stdole32.tlb # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/sti # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/sxs # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/t2embed # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/t2embed # Synced to WineStaging-1.9.11
|
||||
reactos/dll/win32/tapi32 # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/traffic # Synced to WineStaging-1.9.4
|
||||
reactos/dll/win32/twain_32 # Synced to WineStaging-1.9.4
|
||||
|
|
|
@ -233,7 +233,7 @@ TTIsEmbeddingEnabled(HDC hDC,
|
|||
|
||||
LONG
|
||||
WINAPI
|
||||
TTIsEmbeddingEnabledForFacename(LPSTR lpszFacename,
|
||||
TTIsEmbeddingEnabledForFacename(LPCSTR lpszFacename,
|
||||
BOOL* pbEnabled);
|
||||
|
||||
LONG
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue