I have a method of getting drive letters but I don't like it. You see, we currently do a listbox, hidden. We call SendMessage(hTempList, LB_DIR, DDL_DRIVES | DDL_EXCLUSIVE, (LONG)(LPSTR)"*"); and then get the strings out of the list box. I HATE that solution and I was hoping someone could give me something better.