BOOL ProcessTheFile(HWND hWnd)
{
HANDLE hFile;
DWORD dwBytesRead, dwFileSize;
OpenFileName Ofn;
TCHAR szFile[MAX_PATH] = "\0";
char *lpBuf;

  if (GetOpenFileName(&Ofn))
  {
    if ((hFile=CreateFile(Ofn.lpstrFile))==(HANDLE)-1)
    {
      MessageBox(hWnd, "File open failed." );
      return FALSE;
    }
    dwFileSize = GetFileSize(hFile);
    if (dwFileSize == 0xFFFFFFFF) // invalid size
    {
      MessageBox( NULL, "GetFileSize failed!");
      return FALSE;
    }
    lpBuf=(char*)GlobalAlloc(GMEM_FIXED,dwFileSize);
    if (lpBuf == NULL)
    {
      MessageBox(NULL, "GlobalAlloc failed!");
      CloseHandle( hFile );
      return FALSE;
    }
    ReadFile(hFile,lpBuf, dwFileSize, &dwBytesRead);
    if (dwBytesRead == 0)
    {
      MessageBox(hWnd, "Zero bytes read." );
      return FALSE;
    }
    DoSomething(lpBuf)
    CloseHandle(hFile);
    return TRUE;
  }
  else
    return FALSE;
}