書籍やWeb上のサンプルを見ていつも不思議に思うのですが、
パスの最大長MAX_PATHはNULL分も含んでいるのですか?
サンプルにより
TCHAR szPath[MAX_PATH];
TCHAR szPath[MAX_PATH+1];
というのがあるんですけど。