Andrew Eikum : oleaut32: Implement basic ICreateTypeLib functions.
Alexandre Julliard
julliard at winehq.org
Tue May 28 15:16:58 CDT 2013
Module: wine
Branch: master
Commit: ba5c9c7d38f6184f74bd82bed57c6bf1ebba3d2a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ba5c9c7d38f6184f74bd82bed57c6bf1ebba3d2a
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Fri May 24 11:28:35 2013 -0500
oleaut32: Implement basic ICreateTypeLib functions.
---
dlls/oleaut32/typelib.c | 88 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 70 insertions(+), 18 deletions(-)
diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index edc9f21..9bbd86f 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -8110,64 +8110,109 @@ static HRESULT WINAPI ICreateTypeLib2_fnSetName(ICreateTypeLib2 *iface,
LPOLESTR name)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %s - stub\n", This, wine_dbgstr_w(name));
- return E_NOTIMPL;
+
+ TRACE("%p %s\n", This, wine_dbgstr_w(name));
+
+ if (!name)
+ return E_INVALIDARG;
+
+ SysFreeString(This->Name);
+ This->Name = SysAllocString(name);
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetVersion(ICreateTypeLib2 *iface,
WORD majorVerNum, WORD minorVerNum)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %d %d - stub\n", This, majorVerNum, minorVerNum);
- return E_NOTIMPL;
+
+ TRACE("%p %d %d\n", This, majorVerNum, minorVerNum);
+
+ This->LibAttr.wMajorVerNum = majorVerNum;
+ This->LibAttr.wMinorVerNum = minorVerNum;
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetGuid(ICreateTypeLib2 *iface,
REFGUID guid)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %s - stub\n", This, debugstr_guid(guid));
- return E_NOTIMPL;
+
+ TRACE("%p %s\n", This, debugstr_guid(guid));
+
+ memcpy(&This->LibAttr.guid, guid, sizeof(GUID));
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetDocString(ICreateTypeLib2 *iface,
LPOLESTR doc)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %s - stub\n", This, wine_dbgstr_w(doc));
- return E_NOTIMPL;
+
+ TRACE("%p %s\n", This, wine_dbgstr_w(doc));
+
+ if (!doc)
+ return E_INVALIDARG;
+
+ SysFreeString(This->DocString);
+ This->DocString = SysAllocString(doc);
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetHelpFileName(ICreateTypeLib2 *iface,
LPOLESTR helpFileName)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %s - stub\n", This, wine_dbgstr_w(helpFileName));
- return E_NOTIMPL;
+
+ TRACE("%p %s\n", This, wine_dbgstr_w(helpFileName));
+
+ if (!helpFileName)
+ return E_INVALIDARG;
+
+ SysFreeString(This->HelpFile);
+ This->HelpFile = SysAllocString(helpFileName);
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetHelpContext(ICreateTypeLib2 *iface,
DWORD helpContext)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %d - stub\n", This, helpContext);
- return E_NOTIMPL;
+
+ TRACE("%p %d\n", This, helpContext);
+
+ This->dwHelpContext = helpContext;
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetLcid(ICreateTypeLib2 *iface,
LCID lcid)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %x - stub\n", This, lcid);
- return E_NOTIMPL;
+
+ TRACE("%p %x\n", This, lcid);
+
+ This->LibAttr.lcid = lcid;
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSetLibFlags(ICreateTypeLib2 *iface,
UINT libFlags)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %x - stub\n", This, libFlags);
- return E_NOTIMPL;
+
+ TRACE("%p %x\n", This, libFlags);
+
+ This->LibAttr.wLibFlags = libFlags;
+
+ return S_OK;
}
static HRESULT WINAPI ICreateTypeLib2_fnSaveAllChanges(ICreateTypeLib2 *iface)
@@ -8205,8 +8250,15 @@ static HRESULT WINAPI ICreateTypeLib2_fnSetHelpStringDll(ICreateTypeLib2 *iface,
LPOLESTR filename)
{
ITypeLibImpl *This = impl_from_ICreateTypeLib2(iface);
- FIXME("%p %s - stub\n", This, wine_dbgstr_w(filename));
- return E_NOTIMPL;
+ TRACE("%p %s\n", This, wine_dbgstr_w(filename));
+
+ if (!filename)
+ return E_INVALIDARG;
+
+ SysFreeString(This->HelpStringDll);
+ This->HelpStringDll = SysAllocString(filename);
+
+ return S_OK;
}
static const ICreateTypeLib2Vtbl CreateTypeLib2Vtbl = {
More information about the wine-cvs
mailing list