Try writing some of that using a for loop - that is just simply horrible to read

> if(Text_File==INVALID_HANDLE_VALUE){MessageBox(NUL L,
You don't get any bonus points for compressing all this onto one line without any white space

> DWORD* bytes = new DWORD;
You do new twice and delete once
Besides, what's the point of allocating just once DWORD?

DWORD bytes;
...
ReadFile(Text_File,Input_Messages_File,*file_size, &bytes,NULL);

Does the same thing, and no messy allocation to tidy up