I still can't get this to work. I get the following exception: 

Unhandled exception at 0x7686c41f in Brackets.exe: Microsoft C++ exception: std::out_of_range at memory location 0x07ecfd34..

dwRead is a small value (like 66)

Here's the code I'm using:

```
	DWORD dwRead;
	std::string strBuf;
	strBuf.reserve(BRACKETS_NODE_BUFFER_SIZE + 1);
	BOOL bSuccess = FALSE;
	for (;;) {	
		bSuccess = ReadFile(g_hChildStd_OUT_Rd, (LPVOID) strBuf.data(), BRACKETS_NODE_BUFFER_SIZE, &dwRead, NULL);
		if( ! bSuccess || dwRead == 0 ) {
			break;
		} else {
			strBuf.insert((size_t)dwRead, 1, '\0');
			processIncomingData(strBuf);
		}
	} 
	return 0;
```

Feel free to submit a patch...