SetHeader/SetHeader2/AddHeader/DeleteHeader/DeleteHeader2/SetOrDeleteHeader/AddHeaderIf/DeleteHeaderUnited関数(TKInfo.dll)(Ver7.22対応版)
 SetHeader関数は、現在編集中のメールのヘッダ部分から指定されたヘッダを検索し、その内容を書き換えます。指定されたヘッダが見つからない場合は新たに追加します。
 SetHeader2関数は、書き換えたいヘッダが複数存在していた場合のための関数で、書き換えたいヘッダの番号を指定して、そのヘッダの内容を書き換える処理のみを行います。
 AddHeader関数は、現在編集中のメールにパラメータで指定されたヘッダおよび内容を追加します。
 DeleteHeader関数は、パラメータで指定されたヘッダを1つ削除します。DeleteHeader2関数は、削除したいヘッダが複数存在していた場合に、そのヘッダの番号を指定できる物です。

 SetOrDeleteHeader関数は、パラメータで指示したヘッダ内容文字列がもしも空("")ならDeleteHeaderし、空でなければSetHeaderします。また、対象のヘッダが元々複数存在してた場合は、それらを1つにまとめます。例えば
To: aaa
To: bbb
 のようになってる所にdllfunc("SetOrDeleteHeader", "To", "ccc")とすると、「To: bbb」のヘッダが削除されて、最終結果は、
To: ccc
 のようになります。(V6.16からの仕様変更)

 AddHeaderIf関数は、もしもパラメータで指示したヘッダ内容が空なら何もせず、空で無ければAddHeaderします。
 これらの関数は、エディタ・ウィンドウ上で、編集が許可された状態になっている時か、または秀丸メール本体上でBeginEditMailした状態でないと使えません。

 これらの関数は、テンプレートからヘッダ部分を書き換えるために用意した物ですが、普通のマクロからも使えます。ただし、これを実行するとメールの「更新されている」のフラグおよびアンドゥ用のバッファがクリアされ、 カーソルはヘッダ部分の先頭に移動してしまいます。

 SetHeaderUnited関数は、基本はSetHeader関数と同じですが、もしも元々のヘッダが複数あった場合に2番目以降はすべて削除して1つのみに統合します。パラメータ2が空の場合でも削除しないことを除いてはSetOrDeleteHeaderと同じ動きとなります。

 DeleteHeaderUnited関数は、パラメータで指示したヘッダをすべて削除します。

パラメータ1(文字列型)
 ヘッダ名です。"From"のように指定しても、"From:"のようにコロン付きで指定してもかまいません。


パラメータ2(SetHeader, SetHeader2, AddHeader, SetOrDeleteHeader, AddHeaderIf, SetHeaderUnited関数、文字列型)
 ヘッダの内容部分です。ここの値の最後に改行文字が付いている場合には、その改行文字は取り除かれます。


パラメータ2(DeleteHeader2関数、数値型)
 削除したいヘッダの番号です。先頭が0です。


パラメータ3 (SetHeader2関数のみ)
 書き換えたいヘッダの番号です。先頭が0です。

返り値
 SetHeader関数およびAddHeader関数の返す値は文字列型であり、常に""を返します。

 SetHeader2関数の返す値は数値型であり、成功した場合は1、失敗した場合は0を返します。例えばパラメータ3に1を指定したけれども、ヘッダが1つしか無かった場合は書き換えに失敗し、0を返します(ヘッダの追加はしません)。

 DeleteHeader, DeleteHeader2関数の返す値は数値型であり、実際にヘッダを削除した場合は1、削除しなかった場合(指定されたヘッダが無かった場合)は0を返します。DeleteHeader関数は同じヘッダを複数見つけても最初の1つしか削除しないので、すべて削除したい場合は返り値が0になるまで繰り返し呼び出す必要があります。
 SetOrDeleteHeader関数、AddHeaderIf関数の返り値は常に""となります。


$s = dllfuncstr( "SetHeader", "Reply-To", "abc@xyz" );
#n = dllfunc( "SetHeader2", "Received", "abc@xyz", 1 );
$s = dllfuncstr( "AddHeader", "Bcc", "abc@xyz" );
#n = dllfunc( "DeleteHeader", "X-TuruKame-PartialSend" );
#n = dllfunc( "DeleteHeader2", "X-Attach", 1 );
#n = dllfunc( "SetOrDeleteHeader", "Cc", dllfuncstr("RootHeader", "Cc") );
#n = dllfunc( "AddHeaderIf", "Cc", dllfuncstr("RootHeader", "Cc") );
#n = dllfunc( "SetHeaderUnited", "To", dllfuncstr("RootHeaderUnited", "To") );