Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> --- dlls/vbscript/vbdisp.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c index 82c739e..19c23a1 100644 --- a/dlls/vbscript/vbdisp.c +++ b/dlls/vbscript/vbdisp.c @@ -24,6 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(vbscript); +static const GUID GUID_VBScriptTypeLib = {0xc59c6b11,0xf6c1,0x11cf,{0x88,0x35,0x00,0xa0,0xc9,0x11,0xe8,0xb2}}; static const GUID GUID_VBScriptTypeInfo = {0xc59c6b12,0xf6c1,0x11cf,{0x88,0x35,0x00,0xa0,0xc9,0x11,0xe8,0xb2}}; #define DISPID_FUNCTION_MASK 0x20000000 @@ -1298,10 +1299,24 @@ static HRESULT WINAPI ScriptTypeLib_GetTypeInfoOfGuid(ITypeLib *iface, REFGUID g static HRESULT WINAPI ScriptTypeLib_GetLibAttr(ITypeLib *iface, TLIBATTR **ppTLibAttr) { ScriptTypeInfo *This = ScriptTypeInfo_from_typelib_ITypeLib(iface); + TLIBATTR *attr; - FIXME("(%p)->(%p)\n", This, ppTLibAttr); + TRACE("(%p)->(%p)\n", This, ppTLibAttr); - return E_NOTIMPL; + if (!ppTLibAttr) return E_INVALIDARG; + + attr = heap_alloc(sizeof(*attr)); + if (!attr) return E_OUTOFMEMORY; + + attr->guid = GUID_VBScriptTypeLib; + attr->lcid = LOCALE_USER_DEFAULT; + attr->syskind = SYS_WIN32; + attr->wMajorVerNum = VBSCRIPT_MAJOR_VERSION; + attr->wMinorVerNum = VBSCRIPT_MINOR_VERSION; + attr->wLibFlags = 0; + + *ppTLibAttr = attr; + return S_OK; } static HRESULT WINAPI ScriptTypeLib_GetTypeComp(ITypeLib *iface, ITypeComp **ppTComp) @@ -1347,7 +1362,9 @@ static void WINAPI ScriptTypeLib_ReleaseTLibAttr(ITypeLib *iface, TLIBATTR *pTLi { ScriptTypeInfo *This = ScriptTypeInfo_from_typelib_ITypeLib(iface); - FIXME("(%p)->(%p)\n", This, pTLibAttr); + TRACE("(%p)->(%p)\n", This, pTLibAttr); + + heap_free(pTLibAttr); } static const ITypeLibVtbl ScriptTypeLibVtbl = { -- 2.21.0