現在のURIの取得

これ、結構ハマるのです。
普段はURIとかが変わったのを検知して表示してるので、
タブの切り替えとかではわからないのですね。


ポイントは、nsIWebNavigationを使うこと。
具体的には、こんな感じ。

// ウインドウのタイトルにURIを表示する
// * nsCOMPtr<nsIWebBrowser> mWebBrowserが存在するとします。
// * mFrameWindow->SetTitle(wchar_t* aTitle)でウインドウのタイトルを変更できるとします。

nsCOMPtr<nsIWebNavigation> webNavigation = do_QueryInterface(mWebBrowser);
if (webNavigation) {
    nsCOMPtr<nsIURI> uri;
    webNavigation->GetCurrentURI(getter_AddRefs(uri));
    if (uri) {
        nsCString nscs; //char[]のstring
        uri->GetSpec(nscs); //URIはUTF-8
        mFrameWindow->SetTitle(NS_ConvertUTF8toUTF16(nscs).get());
     }
}