class TurboRex::Windows::COM::COMRegistry::CLSIDEntry

Constants

InprocHandler
InprocHandler32
InprocServer
InprocServer32
LocalServer
LocalServer32

Attributes

clsid[R]
inproc_handler[RW]
inproc_handler32[RW]
inproc_server[RW]
inproc_server32[RW]
local_server[RW]
local_server32[RW]
prog_id[RW]
treat_as[RW]
typelib[RW]

Public Class Methods

from_registry(reg_key) click to toggle source
# File lib/turborex/windows/com/com_registry.rb, line 31
def self.from_registry(reg_key)
  return unless reg_key.keyname  =~ /^\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}$/i
  clsid_entry = new(reg_key.keyname.delete('{}'))
  reg_key.each_key do |k|
    reg_key.open(k) do |sub_key|
      case k.downcase
      when 'inprocserver32'
        clsid_entry.inproc_server32 = InprocServer32.new
        clsid_entry.inproc_server32.path = sub_key[''] rescue nil
        clsid_entry.inproc_server32.threading_model = (sub_key['ThreadingModel'] rescue 'sta')
      when 'localserver32'
        clsid_entry.local_server32 = LocalServer32.new
        clsid_entry.local_server32.path = sub_key[''] rescue nil
        clsid_entry.local_server32.server_executable = sub_key['ServerExecutable'] rescue nil
      when 'progid'
        @progid = sub_key[''] rescue nil
      when 'treatas'
        @treat_as = sub_key[''] rescue nil
      when 'typelib'
        @typelib = sub_key[''] rescue nil
      end
    end
  end

  clsid_entry
end
new(clsid) click to toggle source
# File lib/turborex/windows/com/com_registry.rb, line 27
def initialize(clsid)
  @clsid = clsid
end