>>864
p1からp3まで格納するオブジェクトをつくって、
デストラクタでp1からp3を解放しろ。

ところで
> failed:
> if (p4) FreeResource4(p4);
これは何の冗談だ?p4はNULLなはずだが?