This seems like it should be pretty straightforward. I have my class:
class Simple { public: LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPA
A pointer to a member function has an implicit first parameter of this, and so has a different signiture than a pointer to a 'free' function. See http://www.parashift.com/c++-faq-lite/fnptr-vs-memfnptr-types.html
this