Class: WIN32OLE::Type
Relationships & Source Files | |
Inherits: | Object |
Defined in: | ext/win32ole/win32ole_type.c |
Class Method Summary
-
WIN32OLE_TYPE.new(typelib, ole_class) ⇒ Type
constructor
Returns a new
::WIN32OLE_TYPE
object. -
WIN32OLE_TYPE.ole_classes(typelib)
Returns array of
::WIN32OLE_TYPE
objects defined by the typelib type library. -
WIN32OLE_TYPE.progids
Returns array of ProgID.
-
WIN32OLE_TYPE.typelibs
Returns array of type libraries.
Instance Attribute Summary
-
WIN32OLE_TYPE
readonly
Returns true if the OLE class is public.
Instance Method Summary
-
WIN32OLE_TYPE
Returns the array of
::WIN32OLE_TYPE
object which is implemented by the::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FSOURCE and IMPLTYPEFLAG_FDEFAULT. -
WIN32OLE_TYPE
Returns the array of
::WIN32OLE_TYPE
object which is implemented by the::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FDEFAULT. -
WIN32OLE_TYPE
Returns GUID.
-
WIN32OLE_TYPE
Returns helpcontext.
-
WIN32OLE_TYPE
Returns helpfile path.
-
WIN32OLE_TYPE
Returns help string.
-
WIN32OLE_TYPE
Returns the array of
::WIN32OLE_TYPE
object which is implemented by the::WIN32OLE_TYPE
object. -
WIN32OLE_TYPE ⇒ String
Returns the type name with class name.
-
WIN32OLE_TYPE
Returns major version.
-
WIN32OLE_TYPE
Returns minor version.
-
#name
Alias for #to_s.
-
WIN32OLE_TYPE
Returns ProgID if it exists.
-
WIN32OLE_TYPE
Returns the array of
::WIN32OLE_TYPE
object which is implemented by the::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FSOURCE. -
WIN32OLE_TYPE
Returns source class when the OLE class is ‘Alias’.
-
#to_s
(also: #name)
Returns OLE type name.
-
WIN32OLE_TYPE
Returns number which represents type.
-
WIN32OLE_TYPE
Returns array of
::WIN32OLE_VARIABLE
objects which represent variables defined in OLE class.
Constructor Details
WIN32OLE_TYPE.new(typelib, ole_class) ⇒ Type
Returns a new ::WIN32OLE_TYPE
object. The first argument typelib specifies OLE type library name. The second argument specifies OLE class name.
WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Application')
# => WIN32OLE_TYPE object of Application class of Excel.
# File 'ext/win32ole/win32ole_type.c', line 257
static VALUE foletype_initialize(VALUE self, VALUE typelib, VALUE oleclass) { VALUE file; OLECHAR * pbuf; ITypeLib *pTypeLib; HRESULT hr; SafeStringValue(oleclass); SafeStringValue(typelib); file = typelib_file(typelib); if (file == Qnil) { file = typelib; } pbuf = ole_vstr2wc(file); hr = LoadTypeLibEx(pbuf, REGKIND_NONE, &pTypeLib); if (FAILED(hr)) ole_raise(hr, eWIN32OLERuntimeError, "failed to LoadTypeLibEx"); SysFreeString(pbuf); if (oleclass_from_typelib(self, pTypeLib, oleclass) == Qfalse) { OLE_RELEASE(pTypeLib); rb_raise(eWIN32OLERuntimeError, "not found `%s` in `%s`", StringValuePtr(oleclass), StringValuePtr(typelib)); } OLE_RELEASE(pTypeLib); return self; }
Class Method Details
WIN32OLE_TYPE.ole_classes(typelib)
Returns array of ::WIN32OLE_TYPE
objects defined by the typelib type library. This method will be OBSOLETE. Use WIN32OLE_TYPELIB.new
(typelib).ole_classes instead.
# File 'ext/win32ole/win32ole_type.c', line 114
static VALUE foletype_s_ole_classes(VALUE self, VALUE typelib) { VALUE obj; /* rb_warn("%s is obsolete; use %s instead.", "WIN32OLE_TYPE.ole_classes", "WIN32OLE_TYPELIB.new(typelib).ole_types"); */ obj = rb_funcall(cWIN32OLE_TYPELIB, rb_intern("new"), 1, typelib); return rb_funcall(obj, rb_intern("ole_types"), 0); }
WIN32OLE_TYPE.progids
Returns array of ProgID.
# File 'ext/win32ole/win32ole_type.c', line 153
static VALUE foletype_s_progids(VALUE self) { HKEY hclsids, hclsid; DWORD i; LONG err; VALUE clsid; VALUE v = rb_str_new2(""); VALUE progids = rb_ary_new(); err = reg_open_key(HKEY_CLASSES_ROOT, "CLSID", &hclsids); if(err != ERROR_SUCCESS) { return progids; } for(i = 0; ; i++) { clsid = reg_enum_key(hclsids, i); if (clsid == Qnil) break; err = reg_open_vkey(hclsids, clsid, &hclsid); if (err != ERROR_SUCCESS) continue; if ((v = reg_get_val2(hclsid, "ProgID")) != Qnil) rb_ary_push(progids, v); if ((v = reg_get_val2(hclsid, "VersionIndependentProgID")) != Qnil) rb_ary_push(progids, v); RegCloseKey(hclsid); } RegCloseKey(hclsids); return progids; }
WIN32OLE_TYPE.typelibs
Returns array of type libraries. This method will be OBSOLETE. Use WIN32OLE_TYPELIB.typelibs
.collect{|t| t.name} instead.
# File 'ext/win32ole/win32ole_type.c', line 136
static VALUE foletype_s_typelibs(VALUE self) { /* rb_warn("%s is obsolete. use %s instead.", "WIN32OLE_TYPE.typelibs", "WIN32OLE_TYPELIB.typelibs.collect{t|t.name}"); */ return rb_eval_string("WIN32OLE_TYPELIB.typelibs.collect{|t|t.name}"); }
Instance Attribute Details
WIN32OLE_TYPE (readonly)
Returns true if the OLE class is public.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Application')
puts tobj.visible # => true
# File 'ext/win32ole/win32ole_type.c', line 455
static VALUE foletype_visible(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_visible(pTypeInfo); }
Instance Method Details
WIN32OLE_TYPE
Returns the array of ::WIN32OLE_TYPE
object which is implemented by the ::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FSOURCE and IMPLTYPEFLAG_FDEFAULT.
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', "InternetExplorer")
p tobj.default_event_sources # => [#<WIN32OLE_TYPE:DWebBrowserEvents2>]
# File 'ext/win32ole/win32ole_type.c', line 847
static VALUE foletype_default_event_sources(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FSOURCE|IMPLTYPEFLAG_FDEFAULT); }
WIN32OLE_TYPE
Returns the array of ::WIN32OLE_TYPE
object which is implemented by the ::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FDEFAULT.
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', "InternetExplorer")
p tobj.default_ole_types
# => [#<WIN32OLE_TYPE:IWebBrowser2>, #<WIN32OLE_TYPE:DWebBrowserEvents2>]
# File 'ext/win32ole/win32ole_type.c', line 864
static VALUE foletype_default_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FDEFAULT); }
WIN32OLE_TYPE
Returns GUID.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Application')
puts tobj.guid # => {00024500-0000-0000-C000-000000000046}
# File 'ext/win32ole/win32ole_type.c', line 387
static VALUE foletype_guid(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_guid(pTypeInfo); }
WIN32OLE_TYPE
Returns helpcontext. If helpcontext is not found, then returns nil.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Worksheet')
puts tobj.helpfile # => 131185
# File 'ext/win32ole/win32ole_type.c', line 659
static VALUE foletype_helpcontext(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_helpcontext(pTypeInfo); }
WIN32OLE_TYPE
Returns helpfile path. If helpfile is not found, then returns nil.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Worksheet')
puts tobj.helpfile # => C:\...\VBAXL9.CHM
# File 'ext/win32ole/win32ole_type.c', line 632
static VALUE foletype_helpfile(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_helpfile(pTypeInfo); }
WIN32OLE_TYPE
Returns help string.
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'IWebBrowser')
puts tobj.helpstring # => Web Browser interface
# File 'ext/win32ole/win32ole_type.c', line 570
static VALUE foletype_helpstring(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_helpstring(pTypeInfo); }
WIN32OLE_TYPE
Returns the array of ::WIN32OLE_TYPE
object which is implemented by the ::WIN32OLE_TYPE
object.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Worksheet')
p tobj.implemented_ole_types # => [_Worksheet, DocEvents]
# File 'ext/win32ole/win32ole_type.c', line 814
static VALUE foletype_impl_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, 0); }
WIN32OLE_TYPE ⇒ String
# File 'ext/win32ole/win32ole_type.c', line 880
static VALUE foletype_inspect(VALUE self) { return default_inspect(self, "WIN32OLE_TYPE"); }
WIN32OLE_TYPE
Returns major version.
tobj = WIN32OLE_TYPE.new('Microsoft Word 10.0 Object Library', 'Documents')
puts tobj.major_version # => 8
# File 'ext/win32ole/win32ole_type.c', line 484
static VALUE foletype_major_version(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_major_version(pTypeInfo); }
WIN32OLE_TYPE
Returns minor version.
tobj = WIN32OLE_TYPE.new('Microsoft Word 10.0 Object Library', 'Documents')
puts tobj.minor_version # => 2
# File 'ext/win32ole/win32ole_type.c', line 513
static VALUE foletype_minor_version(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_minor_version(pTypeInfo); }
#to_s
#name
Alias for #to_s.
WIN32OLE_TYPE
Returns ProgID if it exists. If not found, then returns nil.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Application')
puts tobj.progid # => Excel.Application.9
# File 'ext/win32ole/win32ole_type.c', line 421
static VALUE foletype_progid(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_progid(pTypeInfo); }
WIN32OLE_TYPE
Returns the array of ::WIN32OLE_TYPE
object which is implemented by the ::WIN32OLE_TYPE
object and having IMPLTYPEFLAG_FSOURCE.
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', "InternetExplorer")
p tobj.source_ole_types
# => [#<WIN32OLE_TYPE:DWebBrowserEvents2>, #<WIN32OLE_TYPE:DWebBrowserEvents>]
# File 'ext/win32ole/win32ole_type.c', line 831
static VALUE foletype_source_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FSOURCE); }
WIN32OLE_TYPE
Returns source class when the OLE class is ‘Alias’.
tobj = WIN32OLE_TYPE.new('Microsoft Office 9.0 Object Library', 'MsoRGBType')
puts tobj.src_type # => I4
# File 'ext/win32ole/win32ole_type.c', line 604
static VALUE foletype_src_type(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_src_type(pTypeInfo); }
#to_s Also known as: #name
Returns OLE type name.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Application')
puts tobj.name # => Application
# File 'ext/win32ole/win32ole_type.c', line 293
static VALUE foletype_name(VALUE self) { return rb_ivar_get(self, rb_intern("name")); }
WIN32OLE_TYPE
Returns number which represents type.
tobj = WIN32OLE_TYPE.new('Microsoft Word 10.0 Object Library', 'Documents')
puts tobj.typekind # => 4
# File 'ext/win32ole/win32ole_type.c', line 543
static VALUE foletype_typekind(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_typekind(pTypeInfo); }
WIN32OLE_TYPE
Returns array of ::WIN32OLE_VARIABLE
objects which represent variables defined in OLE class.
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'XlSheetType')
vars = tobj.variables
vars.each do |v|
puts "#{v.name} = #{v.value}"
end
The result of above sample script is follows:
xlChart = -4109
xlDialogSheet = -4116
xlExcel4IntlMacroSheet = 4
xlExcel4MacroSheet = 3
xlWorksheet = -4167
# File 'ext/win32ole/win32ole_type.c', line 722
static VALUE foletype_variables(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_variables(pTypeInfo); }