起動側の acccept で取得したSOCKET にて
データの頭の方だけ recv して、その内容に応じた別プロセスを生成します。
別プロセスに、起動側の SOCKET を渡したいので、以下のようにしてみました。

sock を以下のように引数にしてプロセスを起動します。
 AnsiString SockName = AnsiString((unsigned int)sock);
 AnsiString Cmd = "HogeChildProc.exe" + " " + SockName;
 CreateProcess(NULL, Cmd.c_str(), NULL, NULL, true, NORMAL_PRIORITY_CLASS, NULL, NULL, &SupInf, &ProInfo);

HogeChildProc側で、
以下のように引数から SOCKET socket を作成します。
 unsigned int ui = (unsigned int)ParamStr(1).ToInt();
 SOCKET socket = (SOCKET)ui;

その後、
この socket にて recv を試みるんですが、うまくいきません。
もしかして、
呼び出し側で、一度 recv しているといまく行かないのでしょうか?