<div dir="ltr">Sorry, my mistake, forgot to reply-all.<div><br></div><div>If the original code is used, the binary uiautomationcore.dll fails to compile in the 32-bit build of Wine. The 64-bit build of Wine compiles successfully. Here is the error log:</div><div><br></div><div>/usr/lib/gcc/i686-w64-mingw32/11.2.0/../../../../i686-w64-mingw32/bin/ld: uiautomationcore.dll-61a5829a.spec.o:fake:(.edata+0x170): undefined reference to `UiaRaiseAutomationPropertyChangedEvent@16'<br>collect2: error: ld returned 1 exit status<br>winegcc: /usr/bin/i686-w64-mingw32-gcc failed<br>make[1]: *** [Makefile:215741: dlls/uiautomationcore/uiautomationcore.dll] Error 2<br></div><div><br></div><div>I can submit the original code with the correct prototype but I can't build the 32-bit version of Wine on my machine. Perhaps there's something wrong with my machine? I don't know why the error is happening.</div><div><br></div><div>Here is the line in the spec file of the original code:</div><div><br></div><div>@ stdcall UiaRaiseAutomationPropertyChangedEvent(ptr long long long)<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 29, 2021 at 4:41 AM Nikolay Sivov <<a href="mailto:nsivov@codeweavers.com">nsivov@codeweavers.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    On 11/29/21 12:18 PM, Mohamad Al-Jaf wrote:<br>
    <blockquote type="cite">
      
      <div dir="ltr">Hi Nikolay,</div>
    </blockquote>
    <br>
    Please reply-all next time to include the list.<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>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.</div>
        <div><br>
        </div>
        <div>This was the original code:</div>
        <div> <br>
          HRESULT WINAPI
          UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple
          *provider, PROPERTYID id, VARIANT oldValue, VARIANT newValue)<br>
          {<br>
              FIXME("(%p, %d, %s, %s): stub\n", provider, id,
          debugstr_variant(&oldValue),
          debugstr_variant(&newValue));<br>
              return S_OK;<br>
          }<br>
          <br>
          HRESULT WINAPI
          UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple
          *provider, PROPERTYID id, VARIANT oldValue, VARIANT newValue);<br>
          <br>
        </div>
        <div>I'm not sure I understand how the prototype is wrong, can
          you please explain it to me?</div>
      </div>
    </blockquote>
    <br>
    What doesn't compile? Prototype has to match the one used on
    Windows, you can't change that for exported functions.<br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>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.</div>
      </div>
    </blockquote>
    <br>
    Connor has been working on this lately, I'll leave it to him to
    comment.<br>
    <br>
    <blockquote type="cite"><br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, Nov 29, 2021 at 3:09
          AM Nikolay Sivov <<a href="mailto:nsivov@codeweavers.com" target="_blank">nsivov@codeweavers.com</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
          <br>
          On 11/29/21 10:35 AM, Mohamad Al-Jaf wrote:<br>
          >
+/***********************************************************************<br>
          > + *          UiaRaiseAutomationPropertyChangedEvent
          (uiautomationcore.@)<br>
          > + */<br>
          > +HRESULT WINAPI
          UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple
          *provider, PROPERTYID id, VARIANT *oldValue, VARIANT
          *newValue)<br>
          > +{<br>
          > +    FIXME("(%p, %d, %p, %p): stub\n", provider, id,
          oldValue, newValue);<br>
          > +    return S_OK;<br>
          > +}<br>
          The prototype is wrong, and return value is not what stubs
          usually have.<br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div>