Peter Dimov said: > From: "DudeSan" <[EMAIL PROTECTED]> >> > No, this won't work. boost::bind returns a function object, an >> object >> with >> > operator() defined, not a function pointer. You can't use bind() to >> create >> > a function pointer. >> >> So, are there any suggestions or ideas that I could use? >> >> I'm trying to make the wndProc point at a member function. I've got it >> too work with functors but I figured boost might get handy since I'm >> converting a class::function to a function. > > A wndProc is a function pointer. It can't be made to point to a > nonstatic member function; these need a pointer to the object ("this") > as an implicit first argument. > > Are you sure you got it to work with functors? > > The usual solutions are either using Set/GetWindowLong(hWnd, > GWL_USERDATA) to store a pointer to the object, or using a std::map< > HWND, > boost::function<HWND, UINT, WPARAM, LPARAM> >.
Another interesting solution is to use a "thunk", much like is done in ATL. This technique could be trivially used to invoke functors. William E. Kempf [EMAIL PROTECTED] _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost