forで回してしまうとlpNameが保証されないんじゃないかなぁ?
ShowMessage(lpName);を取得直後と最後に呼べば分かるけど。