windows-nt/Source/XPSP1/NT/multimedia/directx/dmusic/dmscript/trackshared.h
2020-09-26 16:20:57 +08:00

30 lines
1.3 KiB
C

// Copyright (c) 2000 Microsoft Corporation. All rights reserved.
//
// Code that needs to be shared between the script track (CDirectMusicScriptTrack) and
// the script object (CDirectMusicScript, etc.).
//
#pragma once
// Private script interface used by the script track to call routines. This is needed because
// VBScript routines must be triggered asynchronously in order to avoid deadlocks with other
// threads. This also helps to avoid starving the performance if routines have long loops.
static const GUID IID_IDirectMusicScriptPrivate =
{ 0xf9a5071b, 0x6e0d, 0x498c, { 0x8f, 0xed, 0x56, 0x57, 0x1c, 0x1a, 0xb1, 0xa9 } };// {F9A5071B-6E0D-498c-8FED-56571C1AB1A9}
interface IDirectMusicScriptPrivate : IUnknown
{
virtual HRESULT STDMETHODCALLTYPE ScriptTrackCallRoutine(
WCHAR *pwszRoutineName,
IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualTrackID,
bool fErrorPMsgsEnabled,
__int64 i64IntendedStartTime,
DWORD dwIntendedStartTimeFlags)=0;
};
// Shared function used by the script track and by the script object for ScriptTrackCallRoutine.
// Fills out and sends a DMUS_SCRIPT_TRACK_ERROR_PMSG for the given error.
HRESULT FireScriptTrackErrorPMsg(IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualTrackID, DMUS_SCRIPT_ERRORINFO *pErrorInfo);