|
▼もろへさん:
>まずはじめに、良いソフトウェアをありがとうございます。
>ここでバグ?報告が適切かどうかは分かりませんが、
>
>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してやるといいとは思います。
ご指摘、解決策のご提案ありがとうございます。
まさにその通りですので次回リリース時に修正させていただきます。
ついにで、タスクスケジューラーに登録する際のプロセス優先度が低い問題も修正しておきました。
pSettings->put_Priority(NORMAL_PRIORITY_CLASS);
を追加。
|
|