I have a problem that only occurs on Vista with UAC enabled. My process is running under the Local System account and it is unable to get the full list of clipboard formats after it is notified of a change to the clipboard.
For example, if I copy text from the address bar of IE7, my app checks the clipboard and would normally see 4 formats: CF_UNICODETEXT CF_LOCALE CF_TEXT CF_OEMTEXT
But with the process running as LocalSystem, it only gets the first 2 of those. Copying text from a web page has problems, too. Copying text from the command prompt works fine, however. Turning off UAC fixes the problem.
I tried impersonating the logged on user before calling EnumClipboardFormats() but that didn't help.