Unable to drag files into Cubase due to Windows UIPI

Under Windows 7+, there is a feature in the system that called “User Interface Privilege Isolation”. It prevents processes with a lower “integrity level” (IL) from sending messages to higher IL processes (except for a very specific set of UI messages).

So if run Cubase as Administrator, I cannot drag any file from Explorer to Cubase, because Explorer is not in Administrator mode. Explorer is with a lower IL and Cubase is with a higher one.

This can be solved by a declaration. You can use Windows API ChangeWindowMessageFilter to allow file dragging from lower IL Explorer.

An example below:

void InitUIPIFilter()
{
    typedef BOOL (WINAPI *ChangeWindowMessageFilterProc)(UINT,DWORD);
    HMODULE hUser = LoadLibraryA("user32.dll");
    if (hUser)
    {
        ChangeWindowMessageFilterProc proc = (ChangeWindowMessageFilterProc)GetProcAddress(hUser, "ChangeWindowMessageFilter");
        if(proc)
    {
        proc(WM_COPYDATA,1);
        proc(WM_DROPFILES,1);
    }
    }
}

Or it can be solved by run Cubase in normal mode, but I can’t do that! In anoter issue I said my Cubase cannot find License without running it as Administrator!