From: Michael Stefaniuc Subject: [PATCH 01/11] dmstyle: Implement the E_NOTIMPL methods of IDirectMusicTrack8. Message-Id: <20150630072011.GA26586@redhat.com> Date: Tue, 30 Jun 2015 09:20:11 +0200 --- Odd indentation level clears up after patch 9. dlls/dmstyle/auditiontrack.c | 32 ++++++++++++++++-------- dlls/dmstyle/chordtrack.c | 18 ++++++++++---- dlls/dmstyle/commandtrack.c | 18 ++++++++++---- dlls/dmstyle/motiftrack.c | 32 ++++++++++++++++-------- dlls/dmstyle/mutetrack.c | 58 +++++++++++++++++++++++++++++--------------- dlls/dmstyle/styletrack.c | 18 ++++++++++---- 6 files changed, 121 insertions(+), 55 deletions(-) diff --git a/dlls/dmstyle/auditiontrack.c b/dlls/dmstyle/auditiontrack.c index 448adfc..4b8f510 100644 --- a/dlls/dmstyle/auditiontrack.c +++ b/dlls/dmstyle/auditiontrack.c @@ -93,6 +93,11 @@ static const IUnknownVtbl DirectMusicAuditionTrack_Unknown_Vtbl = { }; /* IDirectMusicAuditionTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicAuditionTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicAuditionTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicAuditionTrack, TrackVtbl, iface); return IDirectMusicAuditionTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -200,16 +205,23 @@ static HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx (LP return S_OK; } -static HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicAuditionTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicAuditionTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } -static HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicAuditionTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p, %d, %p): stub\n", This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Join(IDirectMusicTrack8 *iface, + IDirectMusicTrack *newtrack, MUSIC_TIME join, IUnknown *context, DWORD trackgroup, + IDirectMusicTrack **resulttrack) +{ + IDirectMusicAuditionTrack *This = impl_from_IDirectMusicTrack8(iface); + TRACE("(%p, %p, %d, %p, %d, %p): stub\n", This, newtrack, join, context, trackgroup, + resulttrack); + return E_NOTIMPL; } static const IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl = { @@ -229,8 +241,8 @@ static const IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl = { IDirectMusicAuditionTrack_IDirectMusicTrack_PlayEx, IDirectMusicAuditionTrack_IDirectMusicTrack_GetParamEx, IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicAuditionTrack_IDirectMusicTrack_Compose, - IDirectMusicAuditionTrack_IDirectMusicTrack_Join + IDirectMusicTrack8Impl_Compose, + IDirectMusicTrack8Impl_Join }; /* IDirectMusicAuditionTrack IPersistStream part: */ diff --git a/dlls/dmstyle/chordtrack.c b/dlls/dmstyle/chordtrack.c index bf65752..40f9018 100644 --- a/dlls/dmstyle/chordtrack.c +++ b/dlls/dmstyle/chordtrack.c @@ -96,6 +96,11 @@ static const IUnknownVtbl DirectMusicChordTrack_Unknown_Vtbl = { }; /* IDirectMusicChordTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicChordTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicChordTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicChordTrack, TrackVtbl, iface); return IDirectMusicChordTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -207,10 +212,13 @@ static HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx (LPDIR return S_OK; } -static HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicChordTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicChordTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } static HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { @@ -236,7 +244,7 @@ static const IDirectMusicTrack8Vtbl DirectMusicChordTrack_Track_Vtbl = { IDirectMusicChordTrack_IDirectMusicTrack_PlayEx, IDirectMusicChordTrack_IDirectMusicTrack_GetParamEx, IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicChordTrack_IDirectMusicTrack_Compose, + IDirectMusicTrack8Impl_Compose, IDirectMusicChordTrack_IDirectMusicTrack_Join }; diff --git a/dlls/dmstyle/commandtrack.c b/dlls/dmstyle/commandtrack.c index c82fad6..6029a28 100644 --- a/dlls/dmstyle/commandtrack.c +++ b/dlls/dmstyle/commandtrack.c @@ -95,6 +95,11 @@ static const IUnknownVtbl DirectMusicCommandTrack_Unknown_Vtbl = { }; /* IDirectMusicCommandTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicCommandTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicCommandTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicCommandTrack, TrackVtbl, iface); return IDirectMusicCommandTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -208,10 +213,13 @@ static HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx (LPD return S_OK; } -static HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicCommandTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicCommandTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } static HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { @@ -237,7 +245,7 @@ static const IDirectMusicTrack8Vtbl DirectMusicCommandTrack_Track_Vtbl = { IDirectMusicCommandTrack_IDirectMusicTrack_PlayEx, IDirectMusicCommandTrack_IDirectMusicTrack_GetParamEx, IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicCommandTrack_IDirectMusicTrack_Compose, + IDirectMusicTrack8Impl_Compose, IDirectMusicCommandTrack_IDirectMusicTrack_Join }; diff --git a/dlls/dmstyle/motiftrack.c b/dlls/dmstyle/motiftrack.c index e068406..653e8d8 100644 --- a/dlls/dmstyle/motiftrack.c +++ b/dlls/dmstyle/motiftrack.c @@ -93,6 +93,11 @@ static const IUnknownVtbl DirectMusicMotifTrack_Unknown_Vtbl = { }; /* IDirectMusicMotifTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicMotifTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicMotifTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicMotifTrack, TrackVtbl, iface); return IDirectMusicMotifTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -206,16 +211,23 @@ static HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx (LPDIR return S_OK; } -static HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicMotifTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicMotifTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } -static HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicMotifTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p, %d, %p): stub\n", This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Join(IDirectMusicTrack8 *iface, + IDirectMusicTrack *newtrack, MUSIC_TIME join, IUnknown *context, DWORD trackgroup, + IDirectMusicTrack **resulttrack) +{ + IDirectMusicMotifTrack *This = impl_from_IDirectMusicTrack8(iface); + TRACE("(%p, %p, %d, %p, %d, %p): stub\n", This, newtrack, join, context, trackgroup, + resulttrack); + return E_NOTIMPL; } static const IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl = { @@ -235,8 +247,8 @@ static const IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl = { IDirectMusicMotifTrack_IDirectMusicTrack_PlayEx, IDirectMusicMotifTrack_IDirectMusicTrack_GetParamEx, IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicMotifTrack_IDirectMusicTrack_Compose, - IDirectMusicMotifTrack_IDirectMusicTrack_Join + IDirectMusicTrack8Impl_Compose, + IDirectMusicTrack8Impl_Join }; /* IDirectMusicMotifTrack IPersistStream part: */ diff --git a/dlls/dmstyle/mutetrack.c b/dlls/dmstyle/mutetrack.c index 33fb954..0ce2071 100644 --- a/dlls/dmstyle/mutetrack.c +++ b/dlls/dmstyle/mutetrack.c @@ -93,6 +93,11 @@ static const IUnknownVtbl DirectMusicMuteTrack_Unknown_Vtbl = { }; /* IDirectMusicMuteTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicMuteTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicMuteTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface); return IDirectMusicMuteTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -164,16 +169,22 @@ static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported ( return DMUS_E_TYPE_UNSUPPORTED; } -static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType) { - ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface); - FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType)); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_AddNotificationType(IDirectMusicTrack8 *iface, + REFGUID notiftype) +{ + IDirectMusicMuteTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %s): method not implemented\n", This, debugstr_dmguid(notiftype)); + return E_NOTIMPL; } -static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType) { - ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface); - FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType)); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_RemoveNotificationType(IDirectMusicTrack8 *iface, + REFGUID notiftype) +{ + IDirectMusicMuteTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %s): method not implemented\n", This, debugstr_dmguid(notiftype)); + return E_NOTIMPL; } static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack) { @@ -203,16 +214,23 @@ static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx (LPDIRE return S_OK; } -static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicMuteTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } -static HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicMuteTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p, %d, %p): stub\n", This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Join(IDirectMusicTrack8 *iface, + IDirectMusicTrack *newtrack, MUSIC_TIME join, IUnknown *context, DWORD trackgroup, + IDirectMusicTrack **resulttrack) +{ + IDirectMusicMuteTrack *This = impl_from_IDirectMusicTrack8(iface); + TRACE("(%p, %p, %d, %p, %d, %p): stub\n", This, newtrack, join, context, trackgroup, + resulttrack); + return E_NOTIMPL; } static const IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl = { @@ -226,14 +244,14 @@ static const IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl = { IDirectMusicMuteTrack_IDirectMusicTrack_GetParam, IDirectMusicMuteTrack_IDirectMusicTrack_SetParam, IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported, - IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType, - IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType, + IDirectMusicTrack8Impl_AddNotificationType, + IDirectMusicTrack8Impl_RemoveNotificationType, IDirectMusicMuteTrack_IDirectMusicTrack_Clone, IDirectMusicMuteTrack_IDirectMusicTrack_PlayEx, IDirectMusicMuteTrack_IDirectMusicTrack_GetParamEx, IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicMuteTrack_IDirectMusicTrack_Compose, - IDirectMusicMuteTrack_IDirectMusicTrack_Join + IDirectMusicTrack8Impl_Compose, + IDirectMusicTrack8Impl_Join }; /* IDirectMusicMuteTrack IPersistStream part: */ diff --git a/dlls/dmstyle/styletrack.c b/dlls/dmstyle/styletrack.c index 0de6558..4678552 100644 --- a/dlls/dmstyle/styletrack.c +++ b/dlls/dmstyle/styletrack.c @@ -95,6 +95,11 @@ static const IUnknownVtbl DirectMusicStyleTrack_Unknown_Vtbl = { }; /* IDirectMusicStyleTrack IDirectMusicTrack8 part: */ +static inline IDirectMusicStyleTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface) +{ + return CONTAINING_RECORD(iface, IDirectMusicStyleTrack, TrackVtbl); +} + static HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj) { ICOM_THIS_MULTI(IDirectMusicStyleTrack, TrackVtbl, iface); return IDirectMusicStyleTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj); @@ -209,10 +214,13 @@ static HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx (LPDIR return S_OK; } -static HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { - ICOM_THIS_MULTI(IDirectMusicStyleTrack, TrackVtbl, iface); - FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack); - return S_OK; +static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *context, + DWORD trackgroup, IDirectMusicTrack **track) +{ + IDirectMusicStyleTrack *This = impl_from_IDirectMusicTrack8(iface); + + TRACE("(%p, %p, %d, %p): method not implemented\n", This, context, trackgroup, track); + return E_NOTIMPL; } static HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) { @@ -238,7 +246,7 @@ static const IDirectMusicTrack8Vtbl DirectMusicStyleTrack_Track_Vtbl = { IDirectMusicStyleTrack_IDirectMusicTrack_PlayEx, IDirectMusicStyleTrack_IDirectMusicTrack_GetParamEx, IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx, - IDirectMusicStyleTrack_IDirectMusicTrack_Compose, + IDirectMusicTrack8Impl_Compose, IDirectMusicStyleTrack_IDirectMusicTrack_Join }; -- 2.1.0