ユーザーがツリーラベルの名前を変更できるWin32TreeCtrlがあります。これを行うために、TVN_ENDLABELEDITメッセージを処理します。
場合によっては、ユーザーが入力したテキストを変更する必要があります。基本的に、ユーザーは編集中に短い名前を入力できますが、それを長いテキストに置き換えたいと思います。
これを行うには、TVN_ENDLABELEDIT中に受け取ったTVITEM構造体のpszTextメンバーを変更します。元のメモリが小さすぎて単純なstrcpyのような操作を実行できない可能性があるため、ここでポインタを置き換えます。
ただし、元のpszTextメンバーの割り当てを解除する方法がわかりません。基本的に、それがmalloc()で作成されたのか、newで作成されたのかが不明であるため、適切なデアロケーターを呼び出すことができません。明らかに、ポインタが置き換えられているため、Win32は古いpszTextのデアロケータを呼び出しません。したがって、割り当てを解除しないと、メモリリークが発生します。
Win32がこれらの構造体をどのように割り当てるか、および上記の状況を処理する適切な方法は何ですか?