UNICODEでフォーマットされたテキストファイルを、ReadFile関数で読み込んでいます。

TCHAR szBuffer[1024];

hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
if(hFile == INVALID_HANDLE_VALUE) return FALSE; //ファイルを開けなかった場合

dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize > MAX_READ) return FALSE; //ファイルがおおきすぎる場合

bReturn = ReadFile(hFile, szBuffer, dwFileSize, &dwRcv, NULL);
if(bReturn == FALSE) return FALSE;//ファイルを読み込めなかった場合

szBufferにはUNICODE文字列を指すアドレス(ポインタ)が入っていると思うんですが、 lstrlen(szBuffer)の答えがいつも3になってしまいます。
どこがおかしいのかわかりません。

プリプロセッサの_UNICODEの定義や、TEXT(""),TCHAR 等はきちんと使用しているのですが・・・