1 /* DirectMusicScript Main
3 * Copyright (C) 2003 Rok Mandeljc
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Library General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #include "dmscript_private.h"
22 WINE_DEFAULT_DEBUG_CHANNEL(dmscript);
27 ICOM_VFIELD(IClassFactory);
31 /******************************************************************
32 * DirectMusicScriptAutoImplSegment ClassFactory
34 static HRESULT WINAPI ScriptAutoImplSegmentCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
36 ICOM_THIS(IClassFactoryImpl,iface);
38 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
42 static ULONG WINAPI ScriptAutoImplSegmentCF_AddRef(LPCLASSFACTORY iface)
44 ICOM_THIS(IClassFactoryImpl,iface);
48 static ULONG WINAPI ScriptAutoImplSegmentCF_Release(LPCLASSFACTORY iface)
50 ICOM_THIS(IClassFactoryImpl,iface);
51 /* static class, won't be freed */
55 static HRESULT WINAPI ScriptAutoImplSegmentCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
57 ICOM_THIS(IClassFactoryImpl,iface);
59 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
61 /* nothing here yet */
63 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
67 static HRESULT WINAPI ScriptAutoImplSegmentCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
69 ICOM_THIS(IClassFactoryImpl,iface);
70 FIXME("(%p)->(%d),stub!\n", This, dolock);
74 static ICOM_VTABLE(IClassFactory) ScriptAutoImplSegmentCF_Vtbl = {
75 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
76 ScriptAutoImplSegmentCF_QueryInterface,
77 ScriptAutoImplSegmentCF_AddRef,
78 ScriptAutoImplSegmentCF_Release,
79 ScriptAutoImplSegmentCF_CreateInstance,
80 ScriptAutoImplSegmentCF_LockServer
83 static IClassFactoryImpl ScriptAutoImplSegment_CF = {&ScriptAutoImplSegmentCF_Vtbl, 1 };
85 /******************************************************************
86 * DirectMusicScriptTrack ClassFactory
88 static HRESULT WINAPI ScriptTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
90 ICOM_THIS(IClassFactoryImpl,iface);
92 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
96 static ULONG WINAPI ScriptTrackCF_AddRef(LPCLASSFACTORY iface)
98 ICOM_THIS(IClassFactoryImpl,iface);
102 static ULONG WINAPI ScriptTrackCF_Release(LPCLASSFACTORY iface)
104 ICOM_THIS(IClassFactoryImpl,iface);
105 /* static class, won't be freed */
106 return --(This->ref);
109 static HRESULT WINAPI ScriptTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
111 ICOM_THIS(IClassFactoryImpl,iface);
113 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
115 if (IsEqualIID (riid, &IID_IDirectMusicTrack)
116 || IsEqualIID (riid, &IID_IDirectMusicTrack8)) {
117 return DMUSIC_CreateDirectMusicScriptTrack (riid, (LPDIRECTMUSICTRACK8*)ppobj, pOuter);
120 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
121 return E_NOINTERFACE;
124 static HRESULT WINAPI ScriptTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
126 ICOM_THIS(IClassFactoryImpl,iface);
127 FIXME("(%p)->(%d),stub!\n", This, dolock);
131 static ICOM_VTABLE(IClassFactory) ScriptTrackCF_Vtbl = {
132 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
133 ScriptTrackCF_QueryInterface,
134 ScriptTrackCF_AddRef,
135 ScriptTrackCF_Release,
136 ScriptTrackCF_CreateInstance,
137 ScriptTrackCF_LockServer
140 static IClassFactoryImpl ScriptTrack_CF = {&ScriptTrackCF_Vtbl, 1 };
142 /******************************************************************
143 * DirectMusicAudioVBScript ClassFactory
145 static HRESULT WINAPI AudioVBScriptCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
147 ICOM_THIS(IClassFactoryImpl,iface);
149 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
150 return E_NOINTERFACE;
153 static ULONG WINAPI AudioVBScriptCF_AddRef(LPCLASSFACTORY iface)
155 ICOM_THIS(IClassFactoryImpl,iface);
156 return ++(This->ref);
159 static ULONG WINAPI AudioVBScriptCF_Release(LPCLASSFACTORY iface)
161 ICOM_THIS(IClassFactoryImpl,iface);
162 /* static class, won't be freed */
163 return --(This->ref);
166 static HRESULT WINAPI AudioVBScriptCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
168 ICOM_THIS(IClassFactoryImpl,iface);
170 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
172 /* nothing here yet */
174 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
175 return E_NOINTERFACE;
178 static HRESULT WINAPI AudioVBScriptCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
180 ICOM_THIS(IClassFactoryImpl,iface);
181 FIXME("(%p)->(%d),stub!\n", This, dolock);
185 static ICOM_VTABLE(IClassFactory) AudioVBScriptCF_Vtbl = {
186 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
187 AudioVBScriptCF_QueryInterface,
188 AudioVBScriptCF_AddRef,
189 AudioVBScriptCF_Release,
190 AudioVBScriptCF_CreateInstance,
191 AudioVBScriptCF_LockServer
194 static IClassFactoryImpl AudioVBScript_CF = {&AudioVBScriptCF_Vtbl, 1 };
196 /******************************************************************
197 * DirectMusicScript ClassFactory
199 static HRESULT WINAPI ScriptCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
201 ICOM_THIS(IClassFactoryImpl,iface);
203 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
204 return E_NOINTERFACE;
207 static ULONG WINAPI ScriptCF_AddRef(LPCLASSFACTORY iface)
209 ICOM_THIS(IClassFactoryImpl,iface);
210 return ++(This->ref);
213 static ULONG WINAPI ScriptCF_Release(LPCLASSFACTORY iface)
215 ICOM_THIS(IClassFactoryImpl,iface);
216 /* static class, won't be freed */
217 return --(This->ref);
220 static HRESULT WINAPI ScriptCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
222 ICOM_THIS(IClassFactoryImpl,iface);
224 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
225 if (IsEqualIID (riid, &IID_IDirectMusicScript)) {
226 return DMUSIC_CreateDirectMusicScript (riid, (LPDIRECTMUSICSCRIPT*)ppobj, pOuter);
227 } else if (IsEqualIID (riid, &IID_IDirectMusicObject)) {
228 return DMUSIC_CreateDirectMusicScriptObject (riid, (LPDIRECTMUSICOBJECT*)ppobj, pOuter);
231 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
232 return E_NOINTERFACE;
235 static HRESULT WINAPI ScriptCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
237 ICOM_THIS(IClassFactoryImpl,iface);
238 FIXME("(%p)->(%d),stub!\n", This, dolock);
242 static ICOM_VTABLE(IClassFactory) ScriptCF_Vtbl = {
243 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
244 ScriptCF_QueryInterface,
247 ScriptCF_CreateInstance,
251 static IClassFactoryImpl Script_CF = {&ScriptCF_Vtbl, 1 };
253 /******************************************************************
254 * DirectMusicScriptAutoImplPerformance ClassFactory
256 static HRESULT WINAPI ScriptAutoImplPerformanceCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
258 ICOM_THIS(IClassFactoryImpl,iface);
260 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
261 return E_NOINTERFACE;
264 static ULONG WINAPI ScriptAutoImplPerformanceCF_AddRef(LPCLASSFACTORY iface)
266 ICOM_THIS(IClassFactoryImpl,iface);
267 return ++(This->ref);
270 static ULONG WINAPI ScriptAutoImplPerformanceCF_Release(LPCLASSFACTORY iface)
272 ICOM_THIS(IClassFactoryImpl,iface);
273 /* static class, won't be freed */
274 return --(This->ref);
277 static HRESULT WINAPI ScriptAutoImplPerformanceCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
279 ICOM_THIS(IClassFactoryImpl,iface);
281 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
283 /* nothing here yet */
285 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
286 return E_NOINTERFACE;
289 static HRESULT WINAPI ScriptAutoImplPerformanceCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
291 ICOM_THIS(IClassFactoryImpl,iface);
292 FIXME("(%p)->(%d),stub!\n", This, dolock);
296 static ICOM_VTABLE(IClassFactory) ScriptAutoImplPerformanceCF_Vtbl = {
297 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
298 ScriptAutoImplPerformanceCF_QueryInterface,
299 ScriptAutoImplPerformanceCF_AddRef,
300 ScriptAutoImplPerformanceCF_Release,
301 ScriptAutoImplPerformanceCF_CreateInstance,
302 ScriptAutoImplPerformanceCF_LockServer
305 static IClassFactoryImpl ScriptAutoImplPerformance_CF = {&ScriptAutoImplPerformanceCF_Vtbl, 1 };
307 /******************************************************************
308 * DirectMusicScriptSourceCodeLoader ClassFactory
310 static HRESULT WINAPI ScriptSourceCodeLoaderCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
312 ICOM_THIS(IClassFactoryImpl,iface);
314 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
315 return E_NOINTERFACE;
318 static ULONG WINAPI ScriptSourceCodeLoaderCF_AddRef(LPCLASSFACTORY iface)
320 ICOM_THIS(IClassFactoryImpl,iface);
321 return ++(This->ref);
324 static ULONG WINAPI ScriptSourceCodeLoaderCF_Release(LPCLASSFACTORY iface)
326 ICOM_THIS(IClassFactoryImpl,iface);
327 /* static class, won't be freed */
328 return --(This->ref);
331 static HRESULT WINAPI ScriptSourceCodeLoaderCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
333 ICOM_THIS(IClassFactoryImpl,iface);
335 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
337 /* nothing here yet */
339 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
340 return E_NOINTERFACE;
343 static HRESULT WINAPI ScriptSourceCodeLoaderCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
345 ICOM_THIS(IClassFactoryImpl,iface);
346 FIXME("(%p)->(%d),stub!\n", This, dolock);
350 static ICOM_VTABLE(IClassFactory) ScriptSourceCodeLoaderCF_Vtbl = {
351 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
352 ScriptSourceCodeLoaderCF_QueryInterface,
353 ScriptSourceCodeLoaderCF_AddRef,
354 ScriptSourceCodeLoaderCF_Release,
355 ScriptSourceCodeLoaderCF_CreateInstance,
356 ScriptSourceCodeLoaderCF_LockServer
359 static IClassFactoryImpl ScriptSourceCodeLoader_CF = {&ScriptSourceCodeLoaderCF_Vtbl, 1 };
361 /******************************************************************
362 * DirectMusicScriptAutoImplSegmentState ClassFactory
364 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
366 ICOM_THIS(IClassFactoryImpl,iface);
368 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
369 return E_NOINTERFACE;
372 static ULONG WINAPI ScriptAutoImplSegmentStateCF_AddRef(LPCLASSFACTORY iface)
374 ICOM_THIS(IClassFactoryImpl,iface);
375 return ++(This->ref);
378 static ULONG WINAPI ScriptAutoImplSegmentStateCF_Release(LPCLASSFACTORY iface)
380 ICOM_THIS(IClassFactoryImpl,iface);
381 /* static class, won't be freed */
382 return --(This->ref);
385 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
387 ICOM_THIS(IClassFactoryImpl,iface);
389 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
391 /* nothing here yet */
393 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
394 return E_NOINTERFACE;
397 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
399 ICOM_THIS(IClassFactoryImpl,iface);
400 FIXME("(%p)->(%d),stub!\n", This, dolock);
404 static ICOM_VTABLE(IClassFactory) ScriptAutoImplSegmentStateCF_Vtbl = {
405 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
406 ScriptAutoImplSegmentStateCF_QueryInterface,
407 ScriptAutoImplSegmentStateCF_AddRef,
408 ScriptAutoImplSegmentStateCF_Release,
409 ScriptAutoImplSegmentStateCF_CreateInstance,
410 ScriptAutoImplSegmentStateCF_LockServer
413 static IClassFactoryImpl ScriptAutoImplSegmentState_CF = {&ScriptAutoImplSegmentStateCF_Vtbl, 1 };
415 /******************************************************************
416 * DirectMusicScriptAutoImplAudioPathConfig ClassFactory
418 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
420 ICOM_THIS(IClassFactoryImpl,iface);
422 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
423 return E_NOINTERFACE;
426 static ULONG WINAPI ScriptAutoImplAudioPathConfigCF_AddRef(LPCLASSFACTORY iface)
428 ICOM_THIS(IClassFactoryImpl,iface);
429 return ++(This->ref);
432 static ULONG WINAPI ScriptAutoImplAudioPathConfigCF_Release(LPCLASSFACTORY iface)
434 ICOM_THIS(IClassFactoryImpl,iface);
435 /* static class, won't be freed */
436 return --(This->ref);
439 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
441 ICOM_THIS(IClassFactoryImpl,iface);
443 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
445 /* nothing here yet */
447 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
448 return E_NOINTERFACE;
451 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
453 ICOM_THIS(IClassFactoryImpl,iface);
454 FIXME("(%p)->(%d),stub!\n", This, dolock);
458 static ICOM_VTABLE(IClassFactory) ScriptAutoImplAudioPathConfigCF_Vtbl = {
459 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
460 ScriptAutoImplAudioPathConfigCF_QueryInterface,
461 ScriptAutoImplAudioPathConfigCF_AddRef,
462 ScriptAutoImplAudioPathConfigCF_Release,
463 ScriptAutoImplAudioPathConfigCF_CreateInstance,
464 ScriptAutoImplAudioPathConfigCF_LockServer
467 static IClassFactoryImpl ScriptAutoImplAudioPathConfig_CF = {&ScriptAutoImplAudioPathConfigCF_Vtbl, 1 };
469 /******************************************************************
470 * DirectMusicScriptAutoImplAudioPath ClassFactory
472 static HRESULT WINAPI ScriptAutoImplAudioPathCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
474 ICOM_THIS(IClassFactoryImpl,iface);
476 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
477 return E_NOINTERFACE;
480 static ULONG WINAPI ScriptAutoImplAudioPathCF_AddRef(LPCLASSFACTORY iface)
482 ICOM_THIS(IClassFactoryImpl,iface);
483 return ++(This->ref);
486 static ULONG WINAPI ScriptAutoImplAudioPathCF_Release(LPCLASSFACTORY iface)
488 ICOM_THIS(IClassFactoryImpl,iface);
489 /* static class, won't be freed */
490 return --(This->ref);
493 static HRESULT WINAPI ScriptAutoImplAudioPathCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
495 ICOM_THIS(IClassFactoryImpl,iface);
497 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
499 /* nothing here yet */
501 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
502 return E_NOINTERFACE;
505 static HRESULT WINAPI ScriptAutoImplAudioPathCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
507 ICOM_THIS(IClassFactoryImpl,iface);
508 FIXME("(%p)->(%d),stub!\n", This, dolock);
512 static ICOM_VTABLE(IClassFactory) ScriptAutoImplAudioPathCF_Vtbl = {
513 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
514 ScriptAutoImplAudioPathCF_QueryInterface,
515 ScriptAutoImplAudioPathCF_AddRef,
516 ScriptAutoImplAudioPathCF_Release,
517 ScriptAutoImplAudioPathCF_CreateInstance,
518 ScriptAutoImplAudioPathCF_LockServer
521 static IClassFactoryImpl ScriptAutoImplAudioPath_CF = {&ScriptAutoImplAudioPathCF_Vtbl, 1 };
523 /******************************************************************
524 * DirectMusicScriptAutoImplSong ClassFactory
526 static HRESULT WINAPI ScriptAutoImplSongCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
528 ICOM_THIS(IClassFactoryImpl,iface);
530 FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
531 return E_NOINTERFACE;
534 static ULONG WINAPI ScriptAutoImplSongCF_AddRef(LPCLASSFACTORY iface)
536 ICOM_THIS(IClassFactoryImpl,iface);
537 return ++(This->ref);
540 static ULONG WINAPI ScriptAutoImplSongCF_Release(LPCLASSFACTORY iface)
542 ICOM_THIS(IClassFactoryImpl,iface);
543 /* static class, won't be freed */
544 return --(This->ref);
547 static HRESULT WINAPI ScriptAutoImplSongCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
549 ICOM_THIS(IClassFactoryImpl,iface);
551 TRACE ("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
553 /* nothing here yet */
555 WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
556 return E_NOINTERFACE;
559 static HRESULT WINAPI ScriptAutoImplSongCF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
561 ICOM_THIS(IClassFactoryImpl,iface);
562 FIXME("(%p)->(%d),stub!\n", This, dolock);
566 static ICOM_VTABLE(IClassFactory) ScriptAutoImplSongCF_Vtbl = {
567 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
568 ScriptAutoImplSongCF_QueryInterface,
569 ScriptAutoImplSongCF_AddRef,
570 ScriptAutoImplSongCF_Release,
571 ScriptAutoImplSongCF_CreateInstance,
572 ScriptAutoImplSongCF_LockServer
575 static IClassFactoryImpl ScriptAutoImplSong_CF = {&ScriptAutoImplSongCF_Vtbl, 1 };
577 /******************************************************************
582 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
584 if (fdwReason == DLL_PROCESS_ATTACH)
586 DisableThreadLibraryCalls(hinstDLL);
587 /* FIXME: Initialisation */
589 else if (fdwReason == DLL_PROCESS_DETACH)
598 /******************************************************************
599 * DllCanUnloadNow (DMSCRIPT.1)
603 HRESULT WINAPI DMSCRIPT_DllCanUnloadNow(void)
605 FIXME("(void): stub\n");
611 /******************************************************************
612 * DllGetClassObject (DMSCRIPT.2)
616 HRESULT WINAPI DMSCRIPT_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
618 TRACE("(%p,%p,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
619 if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpSegment) && IsEqualIID (riid, &IID_IClassFactory)) {
620 *ppv = (LPVOID) &ScriptAutoImplSegment_CF;
621 IClassFactory_AddRef((IClassFactory*)*ppv);
623 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptTrack) && IsEqualIID (riid, &IID_IClassFactory)) {
624 *ppv = (LPVOID) &ScriptTrack_CF;
625 IClassFactory_AddRef((IClassFactory*)*ppv);
627 } else if (IsEqualCLSID (rclsid, &CLSID_AudioVBScript) && IsEqualIID (riid, &IID_IClassFactory)) {
628 *ppv = (LPVOID) &AudioVBScript_CF;
629 IClassFactory_AddRef((IClassFactory*)*ppv);
631 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScript) && IsEqualIID (riid, &IID_IClassFactory)) {
632 *ppv = (LPVOID) &Script_CF;
633 IClassFactory_AddRef((IClassFactory*)*ppv);
635 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpPerformance) && IsEqualIID (riid, &IID_IClassFactory)) {
636 *ppv = (LPVOID) &ScriptAutoImplPerformance_CF;
637 IClassFactory_AddRef((IClassFactory*)*ppv);
639 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScripSourceCodeLoader) && IsEqualIID (riid, &IID_IClassFactory)) {
640 *ppv = (LPVOID) &ScriptSourceCodeLoader_CF;
641 IClassFactory_AddRef((IClassFactory*)*ppv);
643 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpSegmentState) && IsEqualIID (riid, &IID_IClassFactory)) {
644 *ppv = (LPVOID) &ScriptAutoImplSegmentState_CF;
645 IClassFactory_AddRef((IClassFactory*)*ppv);
647 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpAudioPathConfig) && IsEqualIID (riid, &IID_IClassFactory)) {
648 *ppv = (LPVOID) &ScriptAutoImplAudioPathConfig_CF;
649 IClassFactory_AddRef((IClassFactory*)*ppv);
651 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpAudioPath) && IsEqualIID (riid, &IID_IClassFactory)) {
652 *ppv = (LPVOID) &ScriptAutoImplAudioPath_CF;
653 IClassFactory_AddRef((IClassFactory*)*ppv);
655 } else if (IsEqualCLSID (rclsid, &CLSID_DirectMusicScriptAutoImpSong) && IsEqualIID (riid, &IID_IClassFactory)) {
656 *ppv = (LPVOID) &ScriptAutoImplSong_CF;
657 IClassFactory_AddRef((IClassFactory*)*ppv);
661 WARN("(%p,%p,%p): no interface found.\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
662 return CLASS_E_CLASSNOTAVAILABLE;