diff options
Diffstat (limited to 'ext/win32ole/win32ole_typelib.c')
-rw-r--r-- | ext/win32ole/win32ole_typelib.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ext/win32ole/win32ole_typelib.c b/ext/win32ole/win32ole_typelib.c index fc164f2e02..f5ecd4c05c 100644 --- a/ext/win32ole/win32ole_typelib.c +++ b/ext/win32ole/win32ole_typelib.c @@ -103,6 +103,22 @@ itypelib(VALUE self) return ptlib->pTypeLib; } +VALUE +ole_typelib_from_itypeinfo(ITypeInfo *pTypeInfo) +{ + HRESULT hr; + ITypeLib *pTypeLib; + unsigned int index; + VALUE retval = Qnil; + + hr = pTypeInfo->lpVtbl->GetContainingTypeLib(pTypeInfo, &pTypeLib, &index); + if(FAILED(hr)) { + return Qnil; + } + retval = create_win32ole_typelib(pTypeLib); + return retval; +} + /* * Document-class: WIN32OLE_TYPELIB * |