Fixed service context detection when built with VS2013.
authorIain Patterson <me@iain.cx>
Mon, 27 Jan 2014 18:46:32 +0000 (18:46 +0000)
committerIain Patterson <me@iain.cx>
Mon, 27 Jan 2014 18:46:32 +0000 (18:46 +0000)
commit997e224304151f2543e6def6f673f1f1a8c9a38c
tree354101e7bf8e3efbbcfd6cd6a67ee55ae53aa96a
parentf06097bfe17243431c6f813adc5381b962d478cd
Fixed service context detection when built with VS2013.

Visual Studio 2013 includes a C runtime which assigns stdin, stdout and
stderr the file descriptors 0, 1 and 2 - just like UNIX does - even if
there are no streams available.  Thus we can no longer use "_fileno(stdin)
< 0" as a check for running in a service context.

Instead we check for "GetStdHandle(STD_INPUT_HANDLE) == 0" which works
when compiled with older or newer versions of Visual Studio.

Thanks Czenda Czendov.
nssm.cpp