Isn't that just a different syntax of an Exception Handler Frame?
Code:
struct _EH4_EXCEPTION_REGISTRATION_RECORD {
	void* SavedESP;
	_EXCEPTION_POINTERS* ExceptionPointers;
	_EXCEPTION_REGISTRATION_RECORD* Next;
	enum _EXCEPTION_DISPOSITION (*Handler)(_EXCEPTION_RECORD*, void*, _CONTEXT*, void*);
	DWORD EncodedScopeTable;
	unsigned long TryLevel;
};
That struct is from a useful set of IDC scripts I sometimes use to make sense of that stuff disassembled:
http://www.openrce.org/downloads/details/196/Microsoft_VC++_Reversing_Helpers
Also, here's an MS ppt presentation which discusses the EH Frame.
Recent Evolutions in Compiler-Based Security Mechanisms
http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=7361
Expand that and I thought it served the same purpose as CPPEH_RECORD.
Code:
CPPEH_RECORD struc ; (sizeof=0x18, standard type) 
 old_esp dd ? 
 exc_ptr dd ? ; offset 
 prev_er dd ? ; offset 
 handler dd ? ; offset 
 msEH_ptr dd ? ; offset 
 disabled dd ? 
 CPPEH_RECORD ends 
 pCPPEH_RECORD TYPEDEF PTR CPPEH_RECORD