On 11/29/21 12:18 PM, Mohamad Al-Jaf wrote:
Hi Nikolay,

Please reply-all next time to include the list.


I see, that would explain why it fails to compile in 32-bit Wine. But how does it compile on the 64-bit version? It worked just fine and the FIXME channel displayed the correct debugstr_variant output.

This was the original code:
 
HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT oldValue, VARIANT newValue)
{
    FIXME("(%p, %d, %s, %s): stub\n", provider, id, debugstr_variant(&oldValue), debugstr_variant(&newValue));
    return S_OK;
}

HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT oldValue, VARIANT newValue);

I'm not sure I understand how the prototype is wrong, can you please explain it to me?

What doesn't compile? Prototype has to match the one used on Windows, you can't change that for exported functions.


For stubs, I thought they were unimplemented functions that simply returned either a boolean or a single value. So in this case, would it be an implementation? I'm not sure what to put in the subject line. The function above it, UiaRaiseAutomationEvent, also returns a value, the same one. Sorry, I'm just trying to understand you and learn more.

Connor has been working on this lately, I'll leave it to him to comment.


On Mon, Nov 29, 2021 at 3:09 AM Nikolay Sivov <nsivov@codeweavers.com> wrote:


On 11/29/21 10:35 AM, Mohamad Al-Jaf wrote:
> +/***********************************************************************
> + *          UiaRaiseAutomationPropertyChangedEvent (uiautomationcore.@)
> + */
> +HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT *oldValue, VARIANT *newValue)
> +{
> +    FIXME("(%p, %d, %p, %p): stub\n", provider, id, oldValue, newValue);
> +    return S_OK;
> +}
The prototype is wrong, and return value is not what stubs usually have.