I think you are right. You will want to use arrays for the dmDeviceName & dmFormName members. For ANSI version, sized 32 and 64 for unicode. I don't have time to play with this today. After reviewing the class you included in your zip file, I have seen other things that can lead to problems