Implement GetThemeTextMetrics.

diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c
index 5bdfef9..2e3eac4 100644
--- a/dlls/uxtheme/draw.c
+++ b/dlls/uxtheme/draw.c
@@ -930,12 +930,6 @@
         DeleteObject(hFont);
     }
     return S_OK;
-
-    
-    FIXME("%d %d: stub\n", iPartId, iStateId);
-    if(!hTheme)
-        return E_HANDLE;
-    return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
 /***********************************************************************
@@ -944,10 +938,32 @@
 HRESULT WINAPI GetThemeTextMetrics(HTHEME hTheme, HDC hdc, int iPartId,
                                    int iStateId, TEXTMETRICW *ptm)
 {
-    FIXME("%d %d: stub\n", iPartId, iStateId);
+    HRESULT hr;
+    HFONT hFont = NULL;
+    HGDIOBJ oldFont = NULL;
+    LOGFONTW logfont;
+
+    TRACE("(%p, %p, %d, %d)\n", hTheme, hdc, iPartId, iStateId);
     if(!hTheme)
         return E_HANDLE;
-    return ERROR_CALL_NOT_IMPLEMENTED;
+
+    hr = GetThemeFont(hTheme, hdc, iPartId, iStateId, TMT_FONT, &logfont);
+    if(SUCCEEDED(hr)) {
+        hFont = CreateFontIndirectW(&logfont);
+        if(!hFont)
+            TRACE("Failed to create font\n");
+    }
+    if(hFont)
+        oldFont = SelectObject(hdc, hFont);
+
+    if(!GetTextMetricsW(hdc, ptm))
+        hr = HRESULT_FROM_WIN32(GetLastError());
+
+    if(hFont) {
+        SelectObject(hdc, oldFont);
+        DeleteObject(hFont);
+    }
+    return hr;
 }
 
 /***********************************************************************