dmstyle: Merge all the different IClassFactory implementations.
This commit is contained in:
parent
1b6eed8a99
commit
1afbbb749a
|
@ -26,411 +26,89 @@ static HINSTANCE instance;
|
||||||
LONG DMSTYLE_refCount = 0;
|
LONG DMSTYLE_refCount = 0;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const IClassFactoryVtbl *lpVtbl;
|
IClassFactory IClassFactory_iface;
|
||||||
|
HRESULT WINAPI (*fnCreateInstance)(REFIID riid, void **ppv, IUnknown *pUnkOuter);
|
||||||
} IClassFactoryImpl;
|
} IClassFactoryImpl;
|
||||||
|
|
||||||
/******************************************************************
|
static HRESULT WINAPI create_direct_music_section(REFIID riid, void **ppv, IUnknown *pUnkOuter)
|
||||||
* DirectMusicSection ClassFactory
|
{
|
||||||
*/
|
FIXME("(%p, %s, %p) stub\n", pUnkOuter, debugstr_dmguid(riid), ppv);
|
||||||
static HRESULT WINAPI SectionCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
return E_NOINTERFACE;
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI SectionCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI SectionCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI SectionCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
/* nothing here yet */
|
|
||||||
WARN("(%s, %p): not found\n", debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI SectionCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl SectionCF_Vtbl = {
|
|
||||||
SectionCF_QueryInterface,
|
|
||||||
SectionCF_AddRef,
|
|
||||||
SectionCF_Release,
|
|
||||||
SectionCF_CreateInstance,
|
|
||||||
SectionCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl Section_CF = {&SectionCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
* DirectMusicStyle ClassFactory
|
* IClassFactory implementation
|
||||||
*/
|
*/
|
||||||
static HRESULT WINAPI StyleCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
static inline IClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface)
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
{
|
||||||
|
return CONTAINING_RECORD(iface, IClassFactoryImpl, IClassFactory_iface);
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI StyleCF_AddRef(LPCLASSFACTORY iface) {
|
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
|
||||||
DMSTYLE_LockModule();
|
{
|
||||||
|
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
if (ppv == NULL)
|
||||||
|
return E_POINTER;
|
||||||
|
|
||||||
|
return E_NOINTERFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI StyleCF_Release(LPCLASSFACTORY iface) {
|
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
|
||||||
DMSTYLE_UnlockModule();
|
{
|
||||||
|
DMSTYLE_LockModule();
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
return 2; /* non-heap based object */
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI StyleCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
{
|
||||||
|
DMSTYLE_UnlockModule();
|
||||||
return DMUSIC_CreateDirectMusicStyleImpl (riid, ppobj, pOuter);
|
|
||||||
|
return 1; /* non-heap based object */
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI StyleCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *pUnkOuter,
|
||||||
TRACE("(%d)\n", dolock);
|
REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
IClassFactoryImpl *This = impl_from_IClassFactory(iface);
|
||||||
|
|
||||||
if (dolock)
|
TRACE ("(%p, %s, %p)\n", pUnkOuter, debugstr_dmguid(riid), ppv);
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
return This->fnCreateInstance(riid, ppv, pUnkOuter);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const IClassFactoryVtbl StyleCF_Vtbl = {
|
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
|
||||||
StyleCF_QueryInterface,
|
{
|
||||||
StyleCF_AddRef,
|
TRACE("(%d)\n", dolock);
|
||||||
StyleCF_Release,
|
|
||||||
StyleCF_CreateInstance,
|
if (dolock)
|
||||||
StyleCF_LockServer
|
DMSTYLE_LockModule();
|
||||||
|
else
|
||||||
|
DMSTYLE_UnlockModule();
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const IClassFactoryVtbl classfactory_vtbl = {
|
||||||
|
ClassFactory_QueryInterface,
|
||||||
|
ClassFactory_AddRef,
|
||||||
|
ClassFactory_Release,
|
||||||
|
ClassFactory_CreateInstance,
|
||||||
|
ClassFactory_LockServer
|
||||||
};
|
};
|
||||||
|
|
||||||
static IClassFactoryImpl Style_CF = {&StyleCF_Vtbl};
|
static IClassFactoryImpl Section_CF = {{&classfactory_vtbl}, create_direct_music_section};
|
||||||
|
static IClassFactoryImpl Style_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicStyleImpl};
|
||||||
/******************************************************************
|
static IClassFactoryImpl ChordTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicChordTrack};
|
||||||
* DirectMusicChordTrack ClassFactory
|
static IClassFactoryImpl CommandTrack_CF = {{&classfactory_vtbl},
|
||||||
*/
|
DMUSIC_CreateDirectMusicCommandTrack};
|
||||||
static HRESULT WINAPI ChordTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
static IClassFactoryImpl StyleTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicStyleTrack};
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
static IClassFactoryImpl MotifTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicMotifTrack};
|
||||||
|
static IClassFactoryImpl AuditionTrack_CF = {{&classfactory_vtbl},
|
||||||
if (ppobj == NULL) return E_POINTER;
|
DMUSIC_CreateDirectMusicAuditionTrack};
|
||||||
|
static IClassFactoryImpl MuteTrack_CF = {{&classfactory_vtbl}, DMUSIC_CreateDirectMusicMuteTrack};
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI ChordTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI ChordTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ChordTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicChordTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI ChordTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl ChordTrackCF_Vtbl = {
|
|
||||||
ChordTrackCF_QueryInterface,
|
|
||||||
ChordTrackCF_AddRef,
|
|
||||||
ChordTrackCF_Release,
|
|
||||||
ChordTrackCF_CreateInstance,
|
|
||||||
ChordTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl ChordTrack_CF = {&ChordTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DirectMusicCommandTrack ClassFactory
|
|
||||||
*/
|
|
||||||
static HRESULT WINAPI CommandTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI CommandTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI CommandTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI CommandTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicCommandTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI CommandTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl CommandTrackCF_Vtbl = {
|
|
||||||
CommandTrackCF_QueryInterface,
|
|
||||||
CommandTrackCF_AddRef,
|
|
||||||
CommandTrackCF_Release,
|
|
||||||
CommandTrackCF_CreateInstance,
|
|
||||||
CommandTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl CommandTrack_CF = {&CommandTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DirectMusicStyleTrack ClassFactory
|
|
||||||
*/
|
|
||||||
static HRESULT WINAPI StyleTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI StyleTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI StyleTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI StyleTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicStyleTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI StyleTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl StyleTrackCF_Vtbl = {
|
|
||||||
StyleTrackCF_QueryInterface,
|
|
||||||
StyleTrackCF_AddRef,
|
|
||||||
StyleTrackCF_Release,
|
|
||||||
StyleTrackCF_CreateInstance,
|
|
||||||
StyleTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl StyleTrack_CF = {&StyleTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DirectMusicMotifTrack ClassFactory
|
|
||||||
*/
|
|
||||||
static HRESULT WINAPI MotifTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI MotifTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI MotifTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI MotifTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicMotifTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI MotifTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl MotifTrackCF_Vtbl = {
|
|
||||||
MotifTrackCF_QueryInterface,
|
|
||||||
MotifTrackCF_AddRef,
|
|
||||||
MotifTrackCF_Release,
|
|
||||||
MotifTrackCF_CreateInstance,
|
|
||||||
MotifTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl MotifTrack_CF = {&MotifTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DirectMusicAuditionTrack ClassFactory
|
|
||||||
*/
|
|
||||||
static HRESULT WINAPI AuditionTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI AuditionTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI AuditionTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI AuditionTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicAuditionTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI AuditionTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl AuditionTrackCF_Vtbl = {
|
|
||||||
AuditionTrackCF_QueryInterface,
|
|
||||||
AuditionTrackCF_AddRef,
|
|
||||||
AuditionTrackCF_Release,
|
|
||||||
AuditionTrackCF_CreateInstance,
|
|
||||||
AuditionTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl AuditionTrack_CF = {&AuditionTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
|
||||||
* DirectMusicMuteTrack ClassFactory
|
|
||||||
*/
|
|
||||||
static HRESULT WINAPI MuteTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
|
|
||||||
FIXME("- no interface IID: %s\n", debugstr_guid(riid));
|
|
||||||
|
|
||||||
if (ppobj == NULL) return E_POINTER;
|
|
||||||
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI MuteTrackCF_AddRef(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
|
|
||||||
return 2; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static ULONG WINAPI MuteTrackCF_Release(LPCLASSFACTORY iface) {
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return 1; /* non-heap based object */
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI MuteTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
|
|
||||||
TRACE ("(%p, %s, %p)\n", pOuter, debugstr_dmguid(riid), ppobj);
|
|
||||||
|
|
||||||
return DMUSIC_CreateDirectMusicMuteTrack (riid, ppobj, pOuter);
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI MuteTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
|
|
||||||
TRACE("(%d)\n", dolock);
|
|
||||||
|
|
||||||
if (dolock)
|
|
||||||
DMSTYLE_LockModule();
|
|
||||||
else
|
|
||||||
DMSTYLE_UnlockModule();
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const IClassFactoryVtbl MuteTrackCF_Vtbl = {
|
|
||||||
MuteTrackCF_QueryInterface,
|
|
||||||
MuteTrackCF_AddRef,
|
|
||||||
MuteTrackCF_Release,
|
|
||||||
MuteTrackCF_CreateInstance,
|
|
||||||
MuteTrackCF_LockServer
|
|
||||||
};
|
|
||||||
|
|
||||||
static IClassFactoryImpl MuteTrack_CF = {&MuteTrackCF_Vtbl};
|
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
* DllMain
|
* DllMain
|
||||||
|
|
Loading…
Reference in New Issue