Signed-off-by: Gabriel Ivăncescu gabrielopcode@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 = {