ご教授お願いします。

VC++6でUnicodeです。

LPTSTR szHoge = new TCHAR(MAX_PATH);
ZeroMemory( szHoge, MAX_PATH * sizeof(TCHAR) );
int nRtn = (GetDlgItem( IDC_EDIT_HOGE ))->GetWindowText( szHoge, MAX_PATH * sizeof(TCHAR) );
LPTSTR lpTgzPath = new TCHAR( nRtn + 1 );
ZeroMemory(lpTgzPath, (nRtn + 1)* sizeof(TCHAR) );
CopyMemory( lpTgzPath, szHoge, nRtn * sizeof(TCHAR) );
delete szHoge;

IDC_EDIT_HOGEのコントロールから取得した文字列をlpTgzPathにコピーするんですが、
delete szHoge; にて例外が発生します。
何がいけないんでしょう・・・?
宜しくお願いいたします。