Para C#.NET: Escucha viejo, lo que tengo entendido es que necesitas enviar un conjunto de bits al puerto paralelo de la impresora, si es eso, lo haras de la misma manera que se hace en C#.NET para comunicarse con el purto Serial.
Lo primero que necesitas es abrir un puntero al purto serial, esto se hace con una llamada a una libreria WIN32 (como user32.dll, no recuerdo cual) y llamando aun metodo de esa libreria para abrir un archivo WIN32, pero no abriras ningun archivo de disco duro si del puerto paralelo.
Necesitaras utilizar la interoperatibilidad de .net c#, haciendo una llamada externa como la que sigue:
[DllImport("user32.dll")...
extern openFile(string filepath,int mode...
Despues que lo hagas, ese puntero lo utilizar para inicializar un Stream, una de las sobrecargas de los contructores de la clase Stream te permite incializar desde un puntero, y asi utilizaras los metodos normales de un Stream para enviar tus bytes a la salida del puerto.
Es un poco largo y tedioso, te recomiendo que lo hagas en C++ pero no conosco c++ mas de lo que tu has escrito en el codigo que muestras. Es mas facil hacerlo en c++ que en C# porque es nativo, esta hecho para esas tareas, aunque despues que obtengas ese stream en c#, es como escribir binario en un archivo del disco duro.
Todo lo vi en el MSDN de Octubre pero no te se decir cual es el topico, lo estuve buscando. Es para VB.NET y C#m se titula algo asi como
"How to write binary data to the serial port".