Custom made win32 drag-drop, can't get change invalid (slashed circle ) cursor.
I've a quite difficult problem to explain but I will try my best. I've made a custom drag-drop implementation to a win32 GUI based application. Due to limitations of the program I can't use the proper OLE drag-drop mechanism. Its okey, I made my own with mouse key tracking and it works so so. The only problem I can't solve now is the bloody invalid (slashed circle) - IDC_NO cursor. 

My window thinks it is undroppable and changes the cursor to invalid when something is about to drop. I tried everything to change it but it insists to stay there. 

    case WM_SETCURSOR:
    {
        //SetSystemCursor(CopyCursor(LoadCursor(NULL, IDC_CROSS)), 32648);
        //DestroyCursor();
        SetCursor(LoadCursor(NULL, IDC_CROSS));
        SetWindowLong(hwnd, DWL_MSGRESULT, TRUE);
        return TRUE;
    }
    break;

I even tried, to change icon outside the message switch which runs in every call to the callback function. It worked a little but not OK. Its like I'm setting it to IDC_CROSS cursor but it is returning back to IDC_NO. 

How can I get rid-off this invalid cursor? I want to set it to IDC_CROSS.

Or how can I implement a Drag-drop without using OLE or MFC classes to make my application dropable and not showing that invalid cursor. 

Quite complicated but thank you for your time, even for reading my question ;)
Custom made win32 drag-drop, can't get change invalid (slashed circle ) cursor.
===

I've a quite difficult problem to explain but I will try my best. I've made a custom drag-drop implementation to a win32 GUI based application. Due to limitations of the program I can't use the proper OLE drag-drop mechanism. Its okey, I made my own with mouse key tracking and it works so so. The only problem I can't solve now is the bloody invalid (slashed circle) - IDC_NO cursor. 

My window thinks it is undroppable and changes the cursor to invalid when something is about to drop. I tried everything to change it but it insists to stay there. 

    case WM_SETCURSOR:
    {
        //SetSystemCursor(CopyCursor(LoadCursor(NULL, IDC_CROSS)), 32648);
        //DestroyCursor();
        SetCursor(LoadCursor(NULL, IDC_CROSS));
        SetWindowLong(hwnd, DWL_MSGRESULT, TRUE);
        return TRUE;
    }
    break;

I even tried, to change icon outside the message switch which runs in every call to the callback function. It worked a little but not OK. Its like I'm setting it to IDC_CROSS cursor but it is returning back to IDC_NO. 

How can I get rid-off this invalid cursor? I want to set it to IDC_CROSS.

Or how can I implement a Drag-drop without using OLE or MFC classes to make my application dropable and not showing that invalid cursor. 

Quite complicated but thank you for your time, even for reading my question ;)