There are several sources explaining the UAC thing that prevents dragging and dropping files from the explorer onto your elevated application, but none of them covers a WPF example.
The problem is that my application NEEDS to be run with administrator rights, but at the same time it clashes with the problem above, so I'm in a deadlock.
For reference, there's this link showing how this would be solved within a MFC application (which is not the case), using the ChangeWindowMessageFilter API.
Is it possible to achieve the same thing within a WPF application?
- UPDATE -
Things I have tried:
- Calling 
ChangeWindowMessageFilterafter my main window's handle was created. The function returns true. - Calling 
ChangeWindowMessageFilterExafter my main window's handle was created, passing it as param. The function returns true and theCHANGEFILTERSTRUCT.ExtStatusisMSGFLTINFO_NONE. - Calling 
DragAcceptFilesafter my main window's handle was created,DragQueryFileandDragFinish, however it looks like theDragAcceptFilescall isn't allowing dragging events (WM_DROPFILES) under WndProc, as follows: 
.
public partial class MainWindow : Window
{
    protected override void OnSourceInitialized(EventArgs e)
    {
        base.OnSourceInitialized(e);
        var source = PresentationSource.FromVisual(this) as HwndSource;
        source.AddHook(WndProc);
        WinAPI.DragAcceptFiles(new WindowInteropHelper(this).Handle, true);
    }
    private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
    {
        if (msg == WinAPI.WM_DROPFILES)
        {
            // Not reaching here
        }
        return IntPtr.Zero;
    }
}