Win32::UrlCache 0.04

いい加減名前と内容が乖離してきたので::IEHistoryからリネーム。OLE版に対抗して実際のキャッシュファイルが残っている場合にはHTMLのタイトルを適当に抽出できるようにしてみた(うちのでざっと見てみたところ間違ったものが釣れることもあるようですが、その辺はご愛敬ということで)。

use strict;
use warnings;
use Win32::UrlCache::Cache;
use Win32::UrlCache::Title;
use Encode;

my $cache = Win32::UrlCache::Cache->new;
$cache->urls( callback => \&callback );

sub callback {
  my $entry = shift;
  print $entry->url, "\n";

  my $title = Win32::UrlCache::Title->extract( $entry->filename );
  print encode( shiftjis => $title ), "\n" if $title;

  return;
}

あと、内部的にはWin32環境下でのFileTimeの変換にWin32::APIを使うように変更。これでちょっとは軽くなったはず。

MSDNをまじめに読んでみたらINTERNET_CACHE_ENTRY_INFO構造体とかFindFirstUrlCacheEntryとかの情報も出てきたので、もしかするとXS版を書いた方が素直かも。