Is my WriteConsole solution correct?
No comment on what your call as I don't know what WriteFile() or WriteConsole() do.

But that is seriously abusing the &amp;&amp; and !! operators.
I don't think I would ever let that code pass a review:

while (ReadFile(hInFile, buffer, BUF_SIZE, &amp;nIn, NULL) &amp;&amp;
    (nIn != 0) &amp;&amp;
    (WriteFile(hOutFile, buffer, nIn, &amp;nOut, NULL) || WriteConsole(hOutFile, pBuffer, _tcslen(pBuffer), &amp;nOut, NULL)));

// Why not write it like this:

// While we manage to read a good value:
while (ReadFile(hInFile, buffer, BUF_SIZE, &amp;nIn, NULL) &amp;&amp; (nIn != 0))
{
     if (!(   (WriteFile(hOutFile, buffer, nIn, &amp;nOut, NULL))
          || (WriteConsole(hOutFile, pBuffer, _tcslen(pBuffer), &amp;nOut, NULL))
          )
        )
     {
          // Write Error
          break;
     }
}
// Now check for read errors to report.