リストコントロール(じゃなくてもいいかもしれないけど)のカスタムドロー作る時に
NM_CUSTOMDRAWのハンドラ使いますよね。
VC++.NET2003だとリソースエディタからハンドラ作成できるけれど
どうしてLPNMCUSTOMDRAWに勝手にキャストされるの?
↓こんな感じに。

void CHoge::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); ←これ
// TODO : ここにコントロール通知ハンドラ コードを追加します。
*pResult = 0;
}

LPNMCUSTOMDRAW じゃなくて更に次の
LPNMLVCUSTOMDRAW使いたいのにっ!なんで最初からLPNMLVCUSTOMDRAWにキャストしといてくれないの??