On Wednesday, 26 April 2017 at 23:04:53 UTC, Nierjerson wrote:
On Wednesday, 26 April 2017 at 15:30:37 UTC, John Chapman wrote:
On Tuesday, 25 April 2017 at 18:39:56 UTC, Nierjerson wrote:
[...]

When you use DISPATCH_PROPERTYPUT you need to set cNamedArgs and rgdispidNamedArgs like so:

  int dispidNamed = DISPID_PROPERTYPUT;
  params.cNamedArgs = 1;
  params.rgdispidNamedArgs = &dispidNamed;

You should also call AddRef on any COM objects you add to your paramVars array.


Did you try this? I tried and same issue. Are you sure the above is required? I'm not using any "named" args so not sure why it should matter?

From the documentation (https://msdn.microsoft.com/en-us/library/windows/desktop/ms221479(v=vs.85).aspx):

"When you use IDispatch::Invoke() with DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, you have to specially initialize the cNamedArgs and rgdispidNamedArgs elements of your DISPPARAMS structure"

Thought it might help.

Reply via email to