First implementation of LoadTypeLibEx().

oldstable
Rein Klazes 1999-09-29 12:15:05 +00:00 committed by Alexandre Julliard
parent 97a99e51ea
commit 260cd4ec94
3 changed files with 34 additions and 2 deletions

View File

@ -140,7 +140,7 @@ type win32
170 stdcall OaBuildVersion() OaBuildVersion
171 stub ClearCustData
180 stub CreateTypeLib2
183 stub LoadTypeLibEx
183 stdcall LoadTypeLibEx (ptr long ptr) LoadTypeLibEx
184 stub SystemTimeToVariantTime
185 stub VariantTimeToSystemTime
186 stdcall UnRegisterTypeLib (ptr long long long long) UnRegisterTypeLib

View File

@ -161,12 +161,32 @@ int TLB_ReadTypeLib(PCHAR file, ITypeLib **ppTypelib);
HRESULT WINAPI LoadTypeLib(
OLECHAR *szFile, /* [in] Name of file to load from */
ITypeLib * *pptLib) /* [out] Pointer to pointer to loaded type library */
{
return LoadTypeLibEx(szFile, REGKIND_DEFAULT, pptLib);
}
/******************************************************************************
* LoadTypeLibEx [OLEAUT32.183]
* Loads and optionally registers a type library
*
* RETURNS
* Success: S_OK
* Failure: Status
*/
HRESULT WINAPI LoadTypeLibEx(
LPOLESTR szFile, /* [in] Name of file to load from */
REGKIND regkind, /* specify kind of registration */
ITypeLib **pptLib) /* [out] Pointer to pointer to loaded type library */
{
LPSTR p;
HRESULT res;
TRACE_(typelib)("('%s',%p)\n",debugstr_w(szFile),pptLib);
TRACE_(typelib)("('%s',%d,%p)\n",debugstr_w(szFile), regkind, pptLib);
p=HEAP_strdupWtoA(GetProcessHeap(),0,szFile);
if(regkind != REGKIND_NONE)
FIXME_(typelib) ("registration of typelibs not supported yet!\n");
res= TLB_ReadTypeLib(p, pptLib);
/* XXX need to free p ?? */

View File

@ -495,4 +495,16 @@ typedef struct tagINTERFACEDATA {
UINT16 cMembers; /* count of members */
} INTERFACEDATA, * LPINTERFACEDATA;
typedef enum tagREGKIND
{
REGKIND_DEFAULT,
REGKIND_REGISTER,
REGKIND_NONE
} REGKIND;
HRESULT WINAPI LoadTypeLib(OLECHAR *szFile, ITypeLib **pptLib);
HRESULT WINAPI LoadTypeLibEx(LPOLESTR szFile, REGKIND regKind, ITypeLib **pptLib);
#endif /*__WINE_OLEAUTO_H*/