|
まずはじめに、良いソフトウェアをありがとうございます。
ここでバグ?報告が適切かどうかは分かりませんが、
CrystalDiskInfo6_1_14Srcのソースコードを見ていたところ、
DiskInfoDlgMenu.cppのBOOL CDiskInfoDlg::RegisterStartup()関数内でのIRegisteredTaskの取り扱いについてですが、909行目で取得し、
pRootFolder->GetTask(_bstr_t(wszTaskName), &pRegisteredTask);
(今気付きましたが、ここと下のget_DefinitionでHRESULT取り忘れてますね)
これをそのまま920行目で使いまわしておりますが、
hr = pRootFolder->RegisterTaskDefinition
MSDNによりますと
http://msdn.microsoft.com/ja-jp/library/windows/desktop/aa381365%28v=vs.85%29.aspx
>ppTask [out]
>An IRegisteredTask interface that represents the new task.
>Pass in a reference to a NULL IRegisteredTask interface pointer. Referencing a non-NULL pointer can cause a memory leak because the pointer will be overwritten.
とあり、この状態ではメモリーリークが発生する可能性があるかと思います。
対応としては、これの前にSAFE_RELEASEしてやるといいとは思います。
以上、失礼しました。
|
|