name()
public
static VALUE
foletypelib_name(VALUE self)
{
struct oletypelibdata *ptlib;
ITypeLib *pTypeLib;
HRESULT hr;
BSTR bstr;
BSTR bstr2;
VALUE name;
Data_Get_Struct(self, struct oletypelibdata, ptlib);
pTypeLib = ptlib->pTypeLib;
hr = pTypeLib->lpVtbl->GetDocumentation(pTypeLib, -1,
&bstr, &bstr2, NULL, NULL);
if (SUCCEEDED(hr)) {
name = WC2VSTR(bstr2);
return rb_enc_str_new(StringValuePtr(name), strlen(StringValuePtr(name)), cWIN32OLE_enc);
} else {
ole_raise(hr, eWIN32OLERuntimeError, "failed to get name from ITypeLib");
}
}