I have a structure with several pieces in it of type CmMenu* (a class derived from CMenu). A pointer to this structure gets passed into a function and when I examine its contents in the debugger I find that one of the CmMenu* pieces is showing as being a CTempMenu and another piece that should be a CWnd* is of type CTempWnd. What are these temp types? I don't find mention of them in the documentation, but I'm still looking. How do they get created? Are they safe to use? They don't seem to be, since when I return from the function my CmMenu* doesn't save the changes I make to it inside the function.