Module: wine Branch: refs/heads/master Commit: f75b9f190f368956949277983a09757d3e5b1a67 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f75b9f190f36895694927798...
Author: Benjamin Arai me@benjaminarai.com Date: Wed Jul 19 18:06:14 2006 -0700
oleaut32: Implements OLEFontImpl_GetIDsOfNames.
---
dlls/oleaut32/olefont.c | 33 +++++++++++++++++++++++++++++---- 1 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/dlls/oleaut32/olefont.c b/dlls/oleaut32/olefont.c index 6c5ea27..8ce3e00 100644 --- a/dlls/oleaut32/olefont.c +++ b/dlls/oleaut32/olefont.c @@ -5,6 +5,7 @@ * interface and the OleCreateFontIndirect API call. * * Copyright 1999 Francis Beaudet + * Copyright 2006 (Google) Benjamin Arai * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -1347,11 +1348,35 @@ static HRESULT WINAPI OLEFontImpl_GetIDs LCID lcid, DISPID* rgDispId) { + ITypeInfo * pTInfo; + HRESULT hres; + OLEFontImpl *this = impl_from_IDispatch(iface); - FIXME("(%p,%s,%p,%d,%04x,%p), stub!\n", this, debugstr_guid(riid), rgszNames, - cNames, (int)lcid, rgDispId - ); - return E_NOTIMPL; + + TRACE("(%p,%s,%p,cNames=%d,lcid=%04x,%p)\n", this, debugstr_guid(riid), + rgszNames, cNames, (int)lcid, rgDispId); + + if (cNames == 0) + { + return E_INVALIDARG; + } + else + { + /* retrieve type information */ + hres = OLEFontImpl_GetTypeInfo(iface, 0, lcid, &pTInfo); + + if (FAILED(hres)) + { + ERR("GetTypeInfo failed.\n"); + return hres; + } + + /* convert names to DISPIDs */ + hres = DispGetIDsOfNames (pTInfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(pTInfo); + + return hres; + } }
/************************************************************************