ok, now im angry. something that worked a second ago stopped working. ken, i know you'll read this post so i wont post much detail.
Code:
LRESULT CALLBACK cEdit::cEditProcA(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
cEdit *ce;
if (msg!=WM_NCCREATE)
{
ce=(cEdit *)GetWindowLong(hwnd,GWL_USERDATA);
return CallWindowProc(ce->cEditProc,hwnd,msg,wParam,lParam);
}
switch (msg)
{
case WM_NCCREATE:
LPCREATESTRUCT lpc;
cEdit *tmpCE;
lpc=(LPCREATESTRUCT)lParam;
SetWindowLong(hwnd,GWL_USERDATA,(LONG)lpc->lpCreateParams);
tmpCE=(cEdit *)GetWindowLong(hwnd,GWL_USERDATA);
return CallWindowProc(tmpCE->wpProc,hwnd,msg,wParam,lParam);
thats the start static wndproc, it calls a normal wndproc. on the callwindowproc that dereferences ce, it tells me it cant convert parameter 1 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'. it doesn't happen for tmpCE, even though it is exactly the same code. whats wrong here?