[前][次][番号順一覧][スレッド一覧]

ruby-changes:13149

From: suke <ko1@a...>
Date: Sun, 13 Sep 2009 21:01:02 +0900 (JST)
Subject: [ruby-changes:13149] Ruby:r24900 (trunk): * ext/win32ole/win32ole.c (oletypelib_get_typelib): some refactoring

suke	2009-09-13 20:58:52 +0900 (Sun, 13 Sep 2009)

  New Revision: 24900

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24900

  Log:
    * ext/win32ole/win32ole.c (oletypelib_get_typelib): some refactoring
      by adding oletypelib_get_typelib.

  Modified files:
    trunk/ChangeLog
    trunk/ext/win32ole/win32ole.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24899)
+++ ChangeLog	(revision 24900)
@@ -1,3 +1,8 @@
+Sun Sep 13 20:55:19 2009  Masaki Suketa  <masaki.suketa@n...>
+
+	* ext/win32ole/win32ole.c (oletypelib_get_typelib): some refactoring
+	  by adding oletypelib_get_typelib.
+
 Sun Sep 13 20:18:49 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* ruby.c (process_sflag, proc_options, load_file_internal): fixed
Index: ext/win32ole/win32ole.c
===================================================================
--- ext/win32ole/win32ole.c	(revision 24899)
+++ ext/win32ole/win32ole.c	(revision 24900)
@@ -130,7 +130,7 @@
 
 #define WC2VSTR(x) ole_wc2vstr((x), TRUE)
 
-#define WIN32OLE_VERSION "1.4.4"
+#define WIN32OLE_VERSION "1.4.5"
 
 typedef HRESULT (STDAPICALLTYPE FNCOCREATEINSTANCEEX)
     (REFCLSID, IUnknown*, DWORD, COSERVERINFO*, DWORD, MULTI_QI*);
@@ -404,6 +404,7 @@
 static VALUE oletype_set_member(VALUE self, ITypeInfo *pTypeInfo, VALUE name);
 static VALUE oleclass_from_typelib(VALUE self, ITypeLib *pTypeLib, VALUE oleclass);
 static VALUE oletypelib_set_member(VALUE self, ITypeLib *pTypeLib);
+static ITypeLib * oletypelib_get_typelib(VALUE self);
 static VALUE foletypelib_s_typelibs(VALUE self);
 static VALUE make_version_str(VALUE major, VALUE minor);
 static VALUE oletypelib_search_registry2(VALUE self, VALUE args);
@@ -4858,6 +4859,14 @@
     return self;
 }
 
+static ITypeLib *
+oletypelib_get_typelib(VALUE self)
+{
+    struct oletypelibdata *ptlib;
+    Data_Get_Struct(self, struct oletypelibdata, ptlib);
+    return ptlib->pTypeLib;
+}
+
 /*
  *  call-seq:
  *
@@ -5141,15 +5150,14 @@
 static VALUE
 foletypelib_guid(VALUE self)
 {
-    struct oletypelibdata *ptlib;
     ITypeLib *pTypeLib;
     HRESULT hr;
     OLECHAR bstr[80];
     VALUE guid = Qnil;
     int len;
     TLIBATTR *pTLibAttr;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+
+    pTypeLib = oletypelib_get_typelib(self);
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
         ole_raise(hr, eWIN32OLERuntimeError, "failed to GetLibAttr from ITypeLib");
@@ -5174,21 +5182,18 @@
 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;
+    pTypeLib = oletypelib_get_typelib(self);
     hr = pTypeLib->lpVtbl->GetDocumentation(pTypeLib, -1,
-                                            &bstr, &bstr2, NULL, NULL);
+                                            NULL, &bstr, NULL, NULL);
     
     if (FAILED(hr)) {
         ole_raise(hr, eWIN32OLERuntimeError, "failed to get name from ITypeLib");
     }
-    name = WC2VSTR(bstr2);
+    name = WC2VSTR(bstr);
     return rb_enc_str_new(StringValuePtr(name), strlen(StringValuePtr(name)), cWIN32OLE_enc);
 }
 
@@ -5208,11 +5213,9 @@
     VALUE major;
     VALUE minor;
     HRESULT hr = S_OK; 
-    struct oletypelibdata *ptlib;
     ITypeLib *pTypeLib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
 
+    pTypeLib = oletypelib_get_typelib(self);
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
         ole_raise(hr, eWIN32OLERuntimeError, "failed to GetLibAttr from ITypeLib");
@@ -5238,10 +5241,8 @@
     TLIBATTR *pTLibAttr;
     VALUE major;
     HRESULT hr = S_OK; 
-    struct oletypelibdata *ptlib;
     ITypeLib *pTypeLib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
 
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
@@ -5267,10 +5268,8 @@
     TLIBATTR *pTLibAttr;
     VALUE minor;
     HRESULT hr = S_OK; 
-    struct oletypelibdata *ptlib;
     ITypeLib *pTypeLib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
 
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
@@ -5347,11 +5346,9 @@
     BSTR bstr;
     LCID lcid = cWIN32OLE_lcid;
     VALUE path;
-    struct oletypelibdata *ptlib;
     ITypeLib *pTypeLib;
 
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
         ole_raise(hr, eWIN32OLERuntimeError, "failed to get TLIBATTR information");
@@ -5392,9 +5389,7 @@
     VALUE visible = Qtrue;
     TLIBATTR *pTLibAttr;
 
-    struct oletypelibdata *ptlib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
 
     hr = pTypeLib->lpVtbl->GetLibAttr(pTypeLib, &pTLibAttr);
     if (FAILED(hr)) {
@@ -5427,9 +5422,7 @@
     VALUE libname = Qnil;
     BSTR bstr;
 
-    struct oletypelibdata *ptlib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
     hr = pTypeLib->lpVtbl->GetDocumentation(pTypeLib, -1,
                                             &bstr, NULL, NULL, NULL);
     if (FAILED(hr)) {
@@ -5454,9 +5447,7 @@
 {
     ITypeLib *pTypeLib = NULL;
     VALUE classes = rb_ary_new();
-    struct oletypelibdata *ptlib;
-    Data_Get_Struct(self, struct oletypelibdata, ptlib);
-    pTypeLib = ptlib->pTypeLib;
+    pTypeLib = oletypelib_get_typelib(self);
     ole_types_from_typelib(pTypeLib, classes);
     return classes;
 }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]