usp10: Implement and test ScriptCacheGetHeight.

This commit is contained in:
Hans Leidekker 2006-07-19 21:45:24 +02:00 committed by Alexandre Julliard
parent e8617b9f1a
commit 401e32ee38
2 changed files with 46 additions and 1 deletions

View File

@ -652,3 +652,48 @@ HRESULT WINAPI ScriptTextOut(const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UIN
return hr; return hr;
} }
} }
/***********************************************************************
* ScriptCacheGetHeight (USP10.@)
*
* Retrieve the height of the font in the cache.
*
* PARAMS
* hdc [I] Device context.
* psc [I/O] Opaque pointer to a script cache.
* height [O] Receives font height.
*
* RETURNS
* Success: S_OK
* Failure: Non-zero HRESULT value.
*/
HRESULT WINAPI ScriptCacheGetHeight(HDC hdc, SCRIPT_CACHE *psc, long *height)
{
HDC phdc;
Scriptcache *pScriptcache;
TEXTMETRICW metric;
TRACE("(%p, %p, %p)\n", hdc, psc, height);
if (!psc || !height)
return E_INVALIDARG;
if (!hdc) return E_PENDING;
if (!*psc) {
pScriptcache = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(Scriptcache));
pScriptcache->hdc = hdc;
phdc = hdc;
*psc = pScriptcache;
} else {
pScriptcache = *psc;
phdc = pScriptcache->hdc;
}
/* FIXME: get this from the cache */
if (!GetTextMetricsW(phdc, &metric))
return E_INVALIDARG;
*height = metric.tmHeight;
return S_OK;
}

View File

@ -3,7 +3,7 @@
@ stub ScriptApplyLogicalWidth @ stub ScriptApplyLogicalWidth
@ stdcall ScriptBreak(ptr long ptr ptr) @ stdcall ScriptBreak(ptr long ptr ptr)
@ stdcall ScriptCPtoX(long long long long ptr ptr ptr ptr ptr) @ stdcall ScriptCPtoX(long long long long ptr ptr ptr ptr ptr)
@ stub ScriptCacheGetHeight @ stdcall ScriptCacheGetHeight(ptr ptr ptr)
@ stdcall ScriptFreeCache(ptr) @ stdcall ScriptFreeCache(ptr)
@ stdcall ScriptGetCMap(ptr ptr ptr long long ptr) @ stdcall ScriptGetCMap(ptr ptr ptr long long ptr)
@ stdcall ScriptGetFontProperties(long ptr ptr) @ stdcall ScriptGetFontProperties(long ptr ptr)