Out-Of-Process ... neuer Prozess mit höheren Rechten ... komplett abgetrennt.
In-Process, da stellt man die Rechte für einen Thread um (genauso kann man auch den "Desktop" für einen Thread ändern, um z.B. auf die
UAC-Fenster zugreifen zu können), aber da haben dann die anderen Threads Zugriff auf den gemeinsamen Speicher/Programmcode. Auch Threads von Fremd-Code aus DLLs, die dir jemand wie Maustreiber, TeamViewer oder weniger Böswillige in deinen Process gehookt haben.
Wenn dein Programm aber nicht das Recht zum Ändern der Rechte besitzt, dann funktioniert das nicht.
(vor allem in Firmenumgebungen ist da oftmls sehr viel eingeschränkt)