I was under the impression that when you double click a file (or choose 'Open With' from the right click menu), Windows simply calls the application with the filename as the parameter. Something like this:
C:\> App.exe file.abc
However, I just double clicked an .xls file and then checked the PEB of the Excel instance that sprang up. To my surprise the commandline did not contain the filename as a parameter.
So that set me wondering. What exactly is the mechanism Windows uses to have a file opened by a relevant application? Is there a special API that each application that supports such facility must expose?