Re: Is it normal that the COM vtbl structure cannot be aligned between Windows and Wine

Zhiyi Zhang <[email protected]> Wed, 11 Jun 2025 20:50:54 +0800
Newsgroups gmane.comp.emulators.wine.devel
Message-ID <[email protected]>

On 6/11/25 20:16, zhengxianwei wrote:
> In wine, Visual2Vtbl 
> 
> ```
> typedef struct IDCompositionVisual2Vtbl {
>     BEGIN_INTERFACE
> 
>     /*** IUnknown methods ***/
>     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
>         IDCompositionVisual2 *This,
>         REFIID riid,
>         void **ppvObject);
> 
>     ULONG (STDMETHODCALLTYPE *AddRef)(
>         IDCompositionVisual2 *This);
> 
>     ULONG (STDMETHODCALLTYPE *Release)(
>         IDCompositionVisual2 *This);
> 
>     /*** IDCompositionVisual methods ***/
>     HRESULT (STDMETHODCALLTYPE *SetOffsetX)(
>         IDCompositionVisual2 *This,
>         float offset_x);
> 
>     HRESULT (STDMETHODCALLTYPE *SetOffsetXAnimation)(
>         IDCompositionVisual2 *This,
>         IDCompositionAnimation *animation);
> 
>     HRESULT (STDMETHODCALLTYPE *SetOffsetY)(
>         IDCompositionVisual2 *This,
>         float offset_y);
> ```
> 
> setOffsetX (float *) at offset 0x18
> visual2vtbl.png
> But in windows 0x18 is setOffsetX (Animation *)
> 
> Is this correct?
> 

No. This is a bug. It's addressed by https://gitlab.winehq.org/zhiyi/wine/-/commit/1ef17ccd021d7b549abeabdbcf9e1448843084d8.
Please see https://gitlab.winehq.org/zhiyi/wine/-/commits/bug-23698-react-native if you want the latest dcomp work.