class WIN32OLE::Record

WIN32OLE::Record 对象表示 VT_RECORD OLE 变体。如果调用 OLE 方法的结果值是 VT_RECORD 类型,Win32OLE 将返回 WIN32OLE::Record 对象。

如果 VB.NET ComServer 项目中的 COM 服务器如下所示

Imports System.Runtime.InteropServices
Public Class ComClass
    Public Structure Book
        <MarshalAs(UnmanagedType.BStr)> _
        Public title As String
        Public cost As Integer
    End Structure
    Public Function getBook() As Book
        Dim book As New Book
        book.title = "The Ruby Book"
        book.cost = 20
        Return book
    End Function
End Class

那么,你可以从下面的 Ruby 脚本中检索 getBook 的返回值

require 'win32ole'
obj = WIN32OLE.new('ComServer.ComClass')
book = obj.getBook
book.class # => WIN32OLE::Record
book.title # => "The Ruby Book"
book.cost  # => 20