SetFilePointer(hFile,1,NULL,FILE_BEGIN); //(1)先頭3バイト読む
ReadFile(hFile,buf,3,&readsize,NULL); // bufはchar
buf[3] = ('\0');

SetFilePointer(hFile,0,NULL,FILE_CURRENT); //(2)先頭から4バイト目を読む(1)の続きを読みたい
ReadFile(hFile,buf,1,&readsize,NULL);
buf[1] = ('\0');

if (buf==0x01)
{
MessageBox(hWnd,"aaa","bbb",MB_OK); //(3)4バイト目は01だからメッセージが出るんじゃ?
}

度々質問ですが、
こんな感じで、まず(1)で先頭から3バイトバイナリを読みます。
次に(2)で(1)の続き(先頭から4バイト目)を読みます。
例えば、バイナリで「41 42 43 01」なら(1)はABCになると思います。
でも、(3)のメッセージが出ません。
if の所の比較が変なんでしょうか?