diff options
author | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-08-12 14:21:22 +0000 |
---|---|---|
committer | suke <suke@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-08-12 14:21:22 +0000 |
commit | aeb8791dab0accdf4847fe9d35bea1e1907803dc (patch) | |
tree | c2a0319e7241276509cd2c07b9d96338df65e76f /ext/win32ole/win32ole.c | |
parent | 7bf7bb84d3f9390f787d3ba594893f904dc47dc1 (diff) | |
download | ruby-aeb8791dab0accdf4847fe9d35bea1e1907803dc.tar.gz |
* ext/win32ole/win32ole.c: refactoring. move some methods
into win32ole_type.c / win32ole_method.c
* ext/win32ole/win32ole.h: ditto.
* ext/win32ole/win32ole_method.c: ditto.
* ext/win32ole/win32ole_method.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.
* ext/win32ole/win32ole_type.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/win32ole/win32ole.c')
-rw-r--r-- | ext/win32ole/win32ole.c | 58 |
1 files changed, 2 insertions, 56 deletions
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index fee388ba3c..d4886d1430 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -103,7 +103,6 @@ typedef struct tagIEVENTSINKOBJ { }IEVENTSINKOBJ, *PIEVENTSINKOBJ; VALUE cWIN32OLE; -VALUE cWIN32OLE_METHOD; VALUE cWIN32OLE_PARAM; VALUE cWIN32OLE_EVENT; VALUE cWIN32OLE_VARIANT; @@ -3752,35 +3751,6 @@ fole_missing(int argc, VALUE *argv, VALUE self) } } -VALUE -ole_methods_from_typeinfo(ITypeInfo *pTypeInfo, int mask) -{ - HRESULT hr; - TYPEATTR *pTypeAttr; - WORD i; - HREFTYPE href; - ITypeInfo *pRefTypeInfo; - VALUE methods = rb_ary_new(); - hr = OLE_GET_TYPEATTR(pTypeInfo, &pTypeAttr); - if (FAILED(hr)) { - ole_raise(hr, eWIN32OLERuntimeError, "failed to GetTypeAttr"); - } - - ole_methods_sub(0, pTypeInfo, methods, mask); - for(i=0; i < pTypeAttr->cImplTypes; i++){ - hr = pTypeInfo->lpVtbl->GetRefTypeOfImplType(pTypeInfo, i, &href); - if(FAILED(hr)) - continue; - hr = pTypeInfo->lpVtbl->GetRefTypeInfo(pTypeInfo, href, &pRefTypeInfo); - if (FAILED(hr)) - continue; - ole_methods_sub(pTypeInfo, pRefTypeInfo, methods, mask); - OLE_RELEASE(pRefTypeInfo); - } - OLE_RELEASE_TYPEATTR(pTypeInfo, pTypeAttr); - return methods; -} - static HRESULT typeinfo_from_ole(struct oledata *pole, ITypeInfo **ppti) { @@ -3907,29 +3877,6 @@ fole_func_methods(VALUE self) return ole_methods( self, INVOKE_FUNC); } -VALUE -ole_type_from_itypeinfo(ITypeInfo *pTypeInfo) -{ - ITypeLib *pTypeLib; - VALUE type = Qnil; - HRESULT hr; - unsigned int index; - BSTR bstr; - - hr = pTypeInfo->lpVtbl->GetContainingTypeLib( pTypeInfo, &pTypeLib, &index ); - if(FAILED(hr)) { - return Qnil; - } - hr = pTypeLib->lpVtbl->GetDocumentation( pTypeLib, index, - &bstr, NULL, NULL, NULL); - OLE_RELEASE(pTypeLib); - if (FAILED(hr)) { - return Qnil; - } - type = create_win32ole_type(pTypeInfo, WC2VSTR(bstr)); - return type; -} - /* * call-seq: * WIN32OLE#ole_type @@ -4268,7 +4215,7 @@ fole_method_help(VALUE self, VALUE cmdname) ITypeInfo *pTypeInfo; HRESULT hr; struct oledata *pole; - VALUE method, obj; + VALUE obj; SafeStringValue(cmdname); OLEData_Get_Struct(self, pole); @@ -4276,8 +4223,7 @@ fole_method_help(VALUE self, VALUE cmdname) if(FAILED(hr)) ole_raise(hr, rb_eRuntimeError, "failed to get ITypeInfo"); - method = folemethod_s_allocate(cWIN32OLE_METHOD); - obj = olemethod_from_typeinfo(method, pTypeInfo, cmdname); + obj = create_win32ole_method(pTypeInfo, cmdname); OLE_RELEASE(pTypeInfo); if (obj == Qnil) |