I got it all working perfectly. I now have a graphical program controlling the lights in my house. I appreciate all the help everyone gave.
In case anyone wants to do something similar in the future, here's the c++ code I ended up using:
void uart(LPCVOID uartByte)
HANDLE hPort = CreateFile(
dcb.BaudRate = CBR_4800;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
bool retVal = WriteFile(hPort,uartByte,1,&BytesWritten,NULL);
Be sure to use "#include <stdio>" in your includes.
With this function, you can just call uart(char); and it sends whatever character through COM2 to whatever microcontroller you have waiting.
Here's a picture of my finished program:
As you can see so far I only have it controlling 2 light sources, but adding additional sources won't be a problem.
On the hardware side, I have a cable going from the serial port in the back of my computer to an RS232 shifter from sparkfun. That shifter is plugged into a breadboard with an atmega8. Some of the pins on that atmega8 go to transistors. Those transistors are connected to relays, and the relays are attached to the light sources.
So when my program sends a uart command, it goes to the atmega and tells it to turn a certain one of its pins low or high, which in turn turns the "transistor->relay->light" chain on or off.
If anyone wants a tutorial, source code, or more pictures, just post and let me know.