How do you send a named pipe string from umnanaged to managed code space?
sr.ReadLine() expects to see a newline character(s) to know the end of the line. Because it receives neither new-line nor end-of-stream, it waits for more. Try:
m_pNamedPipe->SendMessage("Hi de hi\n")
or some of the sr.Read() methods.