According to my programming books the Select Object function is supposed to return an HGDIOBJ struct (the old object) so that it could be set back later. However, according to VC++6 (specifically the little tooltips that comes up when I move the mouse over the function call in my code) the SelectObject function returns a "void* __cdcel" or something like that. Setting an explicit type on the pen/brush doesn't help. Is there another function to get the old object before changing it? or is it safe to just set an object to NULL when shutting down my program? Thanks.