/* * call-seq: * WIN32OLE_METHOD.new(ole_type, method) -> WIN32OLE_METHOD object * * Returns a new WIN32OLE_METHOD object which represents the information * about OLE method. * The first argument <i>ole_type</i> specifies WIN32OLE_TYPE object. * The second argument <i>method</i> specifies OLE method name defined OLE class * which represents WIN32OLE_TYPE object. * * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') * method = WIN32OLE_METHOD.new(tobj, 'SaveAs') */ static VALUE folemethod_initialize(VALUE self, VALUE oletype, VALUE method) { VALUE obj = Qnil; ITypeInfo *pTypeInfo; if (rb_obj_is_kind_of(oletype, cWIN32OLE_TYPE)) { SafeStringValue(method); pTypeInfo = itypeinfo(oletype); obj = olemethod_from_typeinfo(self, pTypeInfo, method); if (obj == Qnil) { rb_raise(eWIN32OLERuntimeError, "not found %s", StringValuePtr(method)); } } else { rb_raise(rb_eTypeError, "1st argument should be WIN32OLE_TYPE object"); } return obj; }
/* * call-seq: * WIN32OLE_TYPE#default_ole_types * * 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>] */ static VALUE foletype_default_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FDEFAULT); }
/* * call-seq: * WIN32OLE_TYPE#implemented_ole_types * * 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] */ static VALUE foletype_impl_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, 0); }
/* * call-seq: * WIN32OLE_TYPE#source_ole_types * * 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>] */ static VALUE foletype_source_ole_types(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_impl_ole_types(pTypeInfo, IMPLTYPEFLAG_FSOURCE); }
/* * call-seq: * WIN32OLE_TYPE#ole_methods # the array of WIN32OLE_METHOD objects. * * Returns array of WIN32OLE_METHOD objects which represent OLE method defined in * OLE type library. * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Worksheet') * methods = tobj.ole_methods.collect{|m| * m.name * } * # => ['Activate', 'Copy', 'Delete',....] */ static VALUE foletype_methods(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_methods_from_typeinfo(pTypeInfo, INVOKE_FUNC | INVOKE_PROPERTYGET | INVOKE_PROPERTYPUT | INVOKE_PROPERTYPUTREF); }
/* * call-seq: * WIN32OLE_TYPE#ole_typelib * * Returns the WIN32OLE_TYPELIB object which is including the WIN32OLE_TYPE * object. If it is not found, then returns nil. * tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Worksheet') * puts tobj.ole_typelib # => 'Microsoft Excel 9.0 Object Library' */ static VALUE foletype_ole_typelib(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_typelib_from_itypeinfo(pTypeInfo); }
/* * call-seq: * WIN32OLE_TYPE#variables * * 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 * */ static VALUE foletype_variables(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_variables(pTypeInfo); }
/* * call-seq: * WIN32OLE_TYPE#helpcontext * * 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 */ static VALUE foletype_helpcontext(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_helpcontext(pTypeInfo); }
/* * call-seq: * WIN32OLE_TYPE#helpfile * * 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 * */ static VALUE foletype_helpfile(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_helpfile(pTypeInfo); }
/* * call-seq: * WIN32OLE_TYPE#typekind #=> number of type. * * Returns number which represents type. * tobj = WIN32OLE_TYPE.new('Microsoft Word 10.0 Object Library', 'Documents') * puts tobj.typekind # => 4 * */ static VALUE foletype_typekind(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_typekind(pTypeInfo); }
/* * call-seq: * WIN32OLE_TYPE#minor_version #=> OLE minor version * * Returns minor version. * tobj = WIN32OLE_TYPE.new('Microsoft Word 10.0 Object Library', 'Documents') * puts tobj.minor_version # => 2 */ static VALUE foletype_minor_version(VALUE self) { ITypeInfo *pTypeInfo = itypeinfo(self); return ole_type_minor_version(pTypeInfo); }