On Friday 23 September 2005 4:10 am, Mike McCormack wrote:
> Hi All,
> The question is, through which interface (or set of interfaces) does
> shell32 invoke the Shelllink object?
>
>  From what I can determine, ShellExecute should use the .lnk extension
> to look in the registry (HKCR\.lnk -> HKCR\lnkfile\CLSID) and get
> CLSID_ShellLink.  Using the CLSID, it calls CoCreateInstance, then
> IShellExtInit->Initialize() which loads the .lnk file.
>
> Unfortunately, the next step is unclear to me.  I think that
> IContextMenu->InvokeCommand is used, but I'm not sure as to how.

Pass the result of IShellLink::GetIDList to IShellFolder::GetUIObjectOf to get 
an IContextMenu
Or if IShellLink::GetIDList fails, you could pass IShellLink::GetPath to 
IShellFolder::ParseDisplayName first
Then call IContextMenu::InvokeCommand


Reply via email to