The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Typelibs;

use warnings;
use strict;

use Win32::OLE::Const;

# list of all registered type libraries
my %Library;

sub ExistsTypeLib {
	my $typelib = shift;
	return $Library{$typelib}	if(exists $Library{$typelib});
	for my $lib (keys %Library) {
		return $Library{$lib}	if($lib =~ /^$typelib/);
	}
	return undef;
}

Win32::OLE::Const->EnumTypeLibs(sub {
    my ($clsid,$title,$version) = @_;
    return unless $version =~ /^([0-9a-fA-F]+)\.([0-9a-fA-F]+)$/;
    my ($maj,$min) = (hex($1), hex($2));
    $Library{$title} = "$maj.$min";
});

1;