From: "phasis68 (Heesob Park)" Date: 2012-04-24T10:47:56+09:00 Subject: [ruby-core:44570] [ruby-trunk - Bug #5334] Segmentation fault in InternetExplorer IServiceProvider interface Issue #5334 has been updated by phasis68 (Heesob Park). This segmentation fault raised at #4396 of win32ole.c hr = pole->pDispatch->lpVtbl->GetTypeInfo( pole->pDispatch, 0, lcid, &pTypeInfo ); According to the document(http://msdn.microsoft.com/en-us/library/cc678965(v=vs.85).aspx), the IServiceProvider interface has only one member, QueryService, through which a caller specifies the service ID (SID, a GUID), the IID of the interface to return, and the address of the caller's interface pointer variable. The IServiceProvider interface does not have GetTypeInfo member function, so you cannot use WIN32OLE#ole_type or WIN32OLE#ole_obj_help which calls GetTypeInfo function. It seems difficult to detect which interface has GetTypeInfo member function or not in the code level. ---------------------------------------- Bug #5334: Segmentation fault in InternetExplorer IServiceProvider interface https://bugs.ruby-lang.org/issues/5334#change-26131 Author: oregev (Ofer Regev) Status: Assigned Priority: Normal Assignee: suke (Masaki Suketa) Category: Target version: ruby -v: ruby 1.9.2p290 (2011-07-09) [i386-mingw32] The following code causes a segmentation fault in Ruby 1.9.2: require 'win32ole' browser = WIN32OLE.new("InternetExplorer.Application") provider = browser.ole_query_interface("{6D5140C1-7436-11CE-8034-00AA006009FA}") provider.ole_obj_help -- http://bugs.ruby-lang.org/