Class: WIN32OLE::Type
- Inherits:
-
Object
- Object
- WIN32OLE::Type
- Defined in:
- ext/win32ole/win32ole_type.c,
ext/win32ole/win32ole_type.c
Overview
WIN32OLE::Type
objects represent OLE type library information.
Class Method Summary collapse
-
.ole_classes(typelib) ⇒ Object
Returns array of WIN32OLE::Type objects defined by the typelib type library.
-
.progids ⇒ Object
Returns array of ProgID.
-
.typelibs ⇒ Object
Returns array of type libraries.
Instance Method Summary collapse
-
#default_event_sources ⇒ Object
Returns the array of WIN32OLE::Type object which is implemented by the WIN32OLE::Type object and having IMPLTYPEFLAG_FSOURCE and IMPLTYPEFLAG_FDEFAULT.
-
#default_ole_types ⇒ Object
Returns the array of WIN32OLE::Type object which is implemented by the WIN32OLE::Type object and having IMPLTYPEFLAG_FDEFAULT.
-
#guid ⇒ Object
Returns GUID.
-
#helpcontext ⇒ Object
Returns helpcontext.
-
#helpfile ⇒ Object
Returns helpfile path.
-
#helpstring ⇒ Object
Returns help string.
-
#implemented_ole_types ⇒ Object
Returns the array of WIN32OLE::Type object which is implemented by the WIN32OLE::Type object.
-
#new(typelib, ole_class) ⇒ WIN32OLE::Type object
constructor
Returns a new WIN32OLE::Type object.
-
#inspect ⇒ String
Returns the type name with class name.
-
#major_version ⇒ Object
Returns major version.
-
#minor_version ⇒ Object
Returns minor version.
-
#name ⇒ Object
(also: #to_s)
Returns OLE type name.
-
#ole_methods ⇒ Object
Returns array of WIN32OLE::Method objects which represent OLE method defined in OLE type library.
-
#ole_type ⇒ Object
returns type of OLE class.
-
#ole_typelib ⇒ Object
Returns the WIN32OLE::TypeLib object which is including the WIN32OLE::Type object.
-
#progid ⇒ Object
Returns ProgID if it exists.
-
#source_ole_types ⇒ Object
Returns the array of WIN32OLE::Type object which is implemented by the WIN32OLE::Type object and having IMPLTYPEFLAG_FSOURCE.
-
#src_type ⇒ Object
Returns source class when the OLE class is ‘Alias’.
-
#typekind ⇒ Object
Returns number which represents type.
-
#variables ⇒ Object
Returns array of WIN32OLE::Variable objects which represent variables defined in OLE class.
-
#visible?(# = > true or false) ⇒ Boolean
Returns true if the OLE class is public.
Constructor Details
#new(typelib, ole_class) ⇒ WIN32OLE::Type object
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
# File 'ext/win32ole/win32ole_type.c', line 260
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
.ole_classes(typelib) ⇒ Object
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.
116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'ext/win32ole/win32ole_type.c', line 116
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);
}
|
.progids ⇒ Object
Returns array of ProgID.
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'ext/win32ole/win32ole_type.c', line 157
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;
}
|
.typelibs ⇒ Object
Returns array of type libraries.
This method will be OBSOLETE. Use WIN32OLE::TypeLib.typelibs.collect{|t| t.name}
instead.
140 141 142 143 144 145 146 147 148 149 |
# File 'ext/win32ole/win32ole_type.c', line 140
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 Method Details
#default_event_sources ⇒ Object
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>]
850 851 852 853 854 855 |
# File 'ext/win32ole/win32ole_type.c', line 850
static VALUE
foletype_default_event_sources(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FSOURCE|IMPLTYPEFLAG_FDEFAULT);
}
|
#default_ole_types ⇒ Object
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>]
867 868 869 870 871 872 |
# File 'ext/win32ole/win32ole_type.c', line 867
static VALUE
foletype_default_ole_types(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FDEFAULT);
}
|
#guid ⇒ Object
390 391 392 393 394 395 |
# File 'ext/win32ole/win32ole_type.c', line 390
static VALUE
foletype_guid(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_guid(pTypeInfo);
}
|
#helpcontext ⇒ Object
662 663 664 665 666 667 |
# File 'ext/win32ole/win32ole_type.c', line 662
static VALUE
foletype_helpcontext(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_helpcontext(pTypeInfo);
}
|
#helpfile ⇒ Object
635 636 637 638 639 640 |
# File 'ext/win32ole/win32ole_type.c', line 635
static VALUE
foletype_helpfile(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_helpfile(pTypeInfo);
}
|
#helpstring ⇒ Object
573 574 575 576 577 578 |
# File 'ext/win32ole/win32ole_type.c', line 573
static VALUE
foletype_helpstring(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_helpstring(pTypeInfo);
}
|
#implemented_ole_types ⇒ Object
817 818 819 820 821 822 |
# File 'ext/win32ole/win32ole_type.c', line 817
static VALUE
foletype_impl_ole_types(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_impl_ole_types(pTypeInfo, 0);
}
|
#inspect ⇒ String
Returns the type name with class name.
ie = WIN32OLE.new('InternetExplorer.Application')
ie.ole_type.inspect => #<WIN32OLE::Type:IWebBrowser2>
883 884 885 886 887 |
# File 'ext/win32ole/win32ole_type.c', line 883
static VALUE
foletype_inspect(VALUE self)
{
return default_inspect(self, "WIN32OLE::Type");
}
|
#major_version ⇒ Object
487 488 489 490 491 492 |
# File 'ext/win32ole/win32ole_type.c', line 487
static VALUE
foletype_major_version(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_major_version(pTypeInfo);
}
|
#minor_version ⇒ Object
516 517 518 519 520 521 |
# File 'ext/win32ole/win32ole_type.c', line 516
static VALUE
foletype_minor_version(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_minor_version(pTypeInfo);
}
|
#name ⇒ Object Also known as: to_s
296 297 298 299 300 |
# File 'ext/win32ole/win32ole_type.c', line 296
static VALUE
foletype_name(VALUE self)
{
return rb_ivar_get(self, rb_intern("name"));
}
|
#ole_methods ⇒ Object
744 745 746 747 748 749 |
# File 'ext/win32ole/win32ole_type.c', line 744
static VALUE
foletype_methods(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_methods_from_typeinfo(pTypeInfo, INVOKE_FUNC | INVOKE_PROPERTYGET | INVOKE_PROPERTYPUT | INVOKE_PROPERTYPUTREF);
}
|
#ole_type ⇒ Object
356 357 358 359 360 361 |
# File 'ext/win32ole/win32ole_type.c', line 356
static VALUE
foletype_ole_type(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_ole_type(pTypeInfo);
}
|
#ole_typelib ⇒ Object
760 761 762 763 764 765 |
# File 'ext/win32ole/win32ole_type.c', line 760
static VALUE
foletype_ole_typelib(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_typelib_from_itypeinfo(pTypeInfo);
}
|
#progid ⇒ Object
424 425 426 427 428 429 |
# File 'ext/win32ole/win32ole_type.c', line 424
static VALUE
foletype_progid(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_progid(pTypeInfo);
}
|
#source_ole_types ⇒ Object
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>]
834 835 836 837 838 839 |
# File 'ext/win32ole/win32ole_type.c', line 834
static VALUE
foletype_source_ole_types(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FSOURCE);
}
|
#src_type ⇒ Object
607 608 609 610 611 612 |
# File 'ext/win32ole/win32ole_type.c', line 607
static VALUE
foletype_src_type(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_src_type(pTypeInfo);
}
|
#typekind ⇒ Object
546 547 548 549 550 551 |
# File 'ext/win32ole/win32ole_type.c', line 546
static VALUE
foletype_typekind(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_typekind(pTypeInfo);
}
|
#variables ⇒ Object
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
725 726 727 728 729 730 |
# File 'ext/win32ole/win32ole_type.c', line 725
static VALUE
foletype_variables(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_variables(pTypeInfo);
}
|
#visible?(# = > true or false) ⇒ Boolean
458 459 460 461 462 463 |
# File 'ext/win32ole/win32ole_type.c', line 458
static VALUE
foletype_visible(VALUE self)
{
ITypeInfo *pTypeInfo = itypeinfo(self);
return ole_type_visible(pTypeInfo);
}
|