Geoff Chappell - Software Analyst
Given an arbitrary interface pointer to an object, this function calls the object’s Exec method.
HRESULT IUnknown_Exec ( IUnknown *punk, const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
The punk argument is any interface pointer for the object of interest.
The subsequent arguments are for the object’s Exec method.
The function returns zero for success, else an error code.
The object is expected to implement the IOleCommandTarget interface.
If the punk argument is NULL, then there is no object to query for the expected interface, and the function returns E_FAIL. If the object does not implement the expected interface, the function returns the result from the failed QueryInterface.
Once the function has obtained a pointer to the expected interface for the given object, it uses this interface pointer to call the Exec method. The pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn and pvaOut arguments are passed as given. The function then releases the interface pointer. The result of calling the method becomes the result of the function.
The IUnknown_Exec function is exported from SHLWAPI.DLL as ordinal 164 in version 5.00 and higher.
Though this function dates from as long ago as 1999, it was still not documented by Microsoft in the MSDN Library at least as late as the CD edition dated January 2004.