0

私はすでに次のことを行う拡張機能を作成しました:

コマンド ラインで Thinderbird を実行するとthunderbird -MyCustomParam1 "12345"、拡張機能によって作成ウィンドウが開き、パラメーター"12345"がウィンドウに追加されます。

私が使用するいくつかのコード:

// In the calling code
var args = {
  param1: 12345,

};

args.wrappedJSObject = args;
var watcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
                            .getService(Components.interfaces.nsIWindowWatcher);
watcher.openWindow(null, url, windowName, features, args);


// In the window code
var args = window.arguments[0].wrappedJSObject;

もちろん、正しい URL と機能を使用します。

今、私は同じことをしたいのですが、メッセージウィンドウと、選択しemlたファイルを使用しています。

eml次のようにコマンドラインからファイルを開くことができます: Thunderbird test.eml(これにより、新しいウィンドウでメールが開きます)。

私が欲しいのは次のとおりです。

Thunderbird test.eml -MycustomParam1 "1234"メールを開き、パラメータ"1234"を画面に追加して、例 1 のようにドキュメント ウィンドウでアクセスできるようにする必要があります。

したがって、基本的には のようなものが必要ですwatcher.openWindowが、特定のemlファイルが必要です。

何か案は?

4

1 に答える 1

0

MsgOpenFromFile関数でこれがどのように行われるかを確認できます。これは、File / Open Saved Message メニュー項目に対して呼び出されます。基本的に、emlファイルを取得 (ファイル パスから nsIFile インスタンスを取得) し、それを URI に変換してから、メッセージ ウィンドウを開く前にクエリ文字列を変更する必要があります。

uri.QueryInterface(Components.interfaces.nsIURL);
uri.query = "type=application/x-message-display";
watcher.openWindow(null, "chrome://messenger/content/messageWindow.xul", "_blank",
                   "all,chrome,dialog=no,status,toolbar", uri);
于 2012-06-12T08:21:45.203 に答える