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

zhengxianwei <[email protected]> Wed, 11 Jun 2025 20:16:53 +0800
Newsgroups gmane.comp.emulators.wine.devel
Message-ID <CABeGAqV7JpnbaSXwzuAWj7Z20QJyMMOuFiQ-C5azCG7QvvKHxA@mail.gmail.com>
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
[image: visual2vtbl.png]
But in windows 0x18 is setOffsetX (Animation *)

Is this correct?
visual2vtbl.png (image/png, 90.2 KB) - not displayed