上は、BackgroundWorkerコンポーネントを使用して別スレッドを走らせてます。

(1)BackgroundWorker1_DoWorkメソッドでDoWorkEventArgsクラスのe.Resultでセットしたプロパティが、
BackgroundWorker1_RunWorkerCompletedメソッドのRunWorkerCompletedEventArgsクラスのe.Resultで
取れるんですが、ソースを見る限り繋がりが見えません。どうして取れるんでしょうか?

(2)BackgroundWorker1_ProgressChangedには進行状況として、integer引数を渡せるんですが、
変数kekkaも渡すにはどうすればいいですか?

要はよくある、処理状況のプログレスバーと、処理中のファイル名を同時に表示するような物を想定。
BackgroundWorker1_ProgressChangedで、プログレスバーなどを使って進行状況は表示できるんですが、
処理中の変数kekkaが渡せないんで、困っています。