/* for ClassFactory */ HRESULT WINAPI create_dmperformance(REFIID lpcGUID, void **ppobj) { IDirectMusicPerformance8Impl *obj; TRACE("(%p,%p)\n", lpcGUID, ppobj); obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicPerformance8Impl)); if (NULL == obj) { *ppobj = NULL; return E_OUTOFMEMORY; } obj->IDirectMusicPerformance8_iface.lpVtbl = &DirectMusicPerformance8_Vtbl; obj->ref = 0; /* will be inited by QueryInterface */ obj->pDirectMusic = NULL; obj->pDirectSound = NULL; obj->pDefaultPath = NULL; InitializeCriticalSection(&obj->safe); obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectMusicPerformance8Impl*->safe"); obj->rtLatencyTime = 100; /* 100 ms TO FIX */ obj->dwBumperLength = 50; /* 50 ms default */ obj->dwPrepareTime = 1000; /* 1000 ms default */ return IDirectMusicPerformance8Impl_QueryInterface(&obj->IDirectMusicPerformance8_iface, lpcGUID, ppobj); }
/* for ClassFactory */ HRESULT WINAPI DMUSIC_CreateDirectMusicPerformanceImpl (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) { IDirectMusicPerformance8Impl *obj; TRACE("(%p,%p,%p)\n", lpcGUID, ppobj, pUnkOuter); obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicPerformance8Impl)); if (NULL == obj) { *ppobj = NULL; return E_OUTOFMEMORY; } obj->lpVtbl = &DirectMusicPerformance8_Vtbl; obj->ref = 0; /* will be inited by QueryInterface */ obj->pDirectMusic = NULL; obj->pDirectSound = NULL; obj->pDefaultPath = NULL; InitializeCriticalSection(&obj->safe); obj->safe.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": IDirectMusicPerformance8Impl*->safe"); obj->rtLatencyTime = 100; /* 100ms TO FIX */ obj->dwBumperLength = 50; /* 50ms default */ obj->dwPrepareTime = 1000; /* 1000ms default */ return IDirectMusicPerformance8Impl_QueryInterface ((LPDIRECTMUSICPERFORMANCE8)obj, lpcGUID, ppobj); }