📄 dmusici.h
字号:
STDMETHOD(ParseDescriptor) (THIS_ LPSTREAM pStream,
LPDMUS_OBJECTDESC pDesc) PURE;
};
#undef INTERFACE
#define INTERFACE IDirectMusicLoader
DECLARE_INTERFACE_(IDirectMusicLoader, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicLoader */
STDMETHOD(GetObject) (THIS_ LPDMUS_OBJECTDESC pDesc,
REFIID riid,
LPVOID FAR *ppv) PURE;
STDMETHOD(SetObject) (THIS_ LPDMUS_OBJECTDESC pDesc) PURE;
STDMETHOD(SetSearchDirectory) (THIS_ REFGUID rguidClass,
WCHAR *pwzPath,
BOOL fClear) PURE;
STDMETHOD(ScanDirectory) (THIS_ REFGUID rguidClass,
WCHAR *pwzFileExtension,
WCHAR *pwzScanFileName) PURE;
STDMETHOD(CacheObject) (THIS_ IDirectMusicObject * pObject) PURE;
STDMETHOD(ReleaseObject) (THIS_ IDirectMusicObject * pObject) PURE;
STDMETHOD(ClearCache) (THIS_ REFGUID rguidClass) PURE;
STDMETHOD(EnableCache) (THIS_ REFGUID rguidClass,
BOOL fEnable) PURE;
STDMETHOD(EnumObject) (THIS_ REFGUID rguidClass,
DWORD dwIndex,
LPDMUS_OBJECTDESC pDesc) PURE;
};
/* Stream object supports IDirectMusicGetLoader interface to access loader while file parsing. */
#undef INTERFACE
#define INTERFACE IDirectMusicGetLoader
DECLARE_INTERFACE_(IDirectMusicGetLoader, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicGetLoader */
STDMETHOD(GetLoader) (THIS_ IDirectMusicLoader ** ppLoader) PURE;
};
/*////////////////////////////////////////////////////////////////////
// IDirectMusicSegment */
#undef INTERFACE
#define INTERFACE IDirectMusicSegment
DECLARE_INTERFACE_(IDirectMusicSegment, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicSegment */
STDMETHOD(GetLength) (THIS_ MUSIC_TIME* pmtLength) PURE;
STDMETHOD(SetLength) (THIS_ MUSIC_TIME mtLength) PURE;
STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE;
STDMETHOD(SetRepeats) (THIS_ DWORD dwRepeats) PURE;
STDMETHOD(GetDefaultResolution) (THIS_ DWORD* pdwResolution) PURE;
STDMETHOD(SetDefaultResolution) (THIS_ DWORD dwResolution) PURE;
STDMETHOD(GetTrack) (THIS_ REFGUID rguidType,
DWORD dwGroupBits,
DWORD dwIndex,
IDirectMusicTrack** ppTrack) PURE;
STDMETHOD(GetTrackGroup) (THIS_ IDirectMusicTrack* pTrack,
DWORD* pdwGroupBits) PURE;
STDMETHOD(InsertTrack) (THIS_ IDirectMusicTrack* pTrack,
DWORD dwGroupBits) PURE;
STDMETHOD(RemoveTrack) (THIS_ IDirectMusicTrack* pTrack) PURE;
STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState** ppSegState,
IDirectMusicPerformance* pPerformance,
DWORD dwFlags) PURE;
STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE;
STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE;
STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(GetParam) (THIS_ REFGUID rguidType,
DWORD dwGroupBits,
DWORD dwIndex,
MUSIC_TIME mtTime,
MUSIC_TIME* pmtNext,
void* pParam) PURE;
STDMETHOD(SetParam) (THIS_ REFGUID rguidType,
DWORD dwGroupBits,
DWORD dwIndex,
MUSIC_TIME mtTime,
void* pParam) PURE;
STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart,
MUSIC_TIME mtEnd,
IDirectMusicSegment** ppSegment) PURE;
STDMETHOD(SetStartPoint) (THIS_ MUSIC_TIME mtStart) PURE;
STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE;
STDMETHOD(SetLoopPoints) (THIS_ MUSIC_TIME mtStart,
MUSIC_TIME mtEnd) PURE;
STDMETHOD(GetLoopPoints) (THIS_ MUSIC_TIME* pmtStart,
MUSIC_TIME* pmtEnd) PURE;
STDMETHOD(SetPChannelsUsed) (THIS_ DWORD dwNumPChannels,
DWORD* paPChannels) PURE;
};
/*/////////////////////////////////////////////////////////////////////
// IDirectMusicSegmentState */
#undef INTERFACE
#define INTERFACE IDirectMusicSegmentState
DECLARE_INTERFACE_(IDirectMusicSegmentState, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicSegmentState */
STDMETHOD(GetRepeats) (THIS_ DWORD* pdwRepeats) PURE;
STDMETHOD(GetSegment ) (THIS_ IDirectMusicSegment** ppSegment) PURE;
STDMETHOD(GetStartTime) (THIS_ MUSIC_TIME* pmtStart) PURE;
STDMETHOD(GetSeek) (THIS_ MUSIC_TIME* pmtSeek) PURE;
STDMETHOD(GetStartPoint) (THIS_ MUSIC_TIME* pmtStart) PURE;
};
/*////////////////////////////////////////////////////////////////////
// IDirectMusicTrack */
#undef INTERFACE
#define INTERFACE IDirectMusicTrack
DECLARE_INTERFACE_(IDirectMusicTrack, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicTrack */
STDMETHOD(Init) (THIS_ IDirectMusicSegment* pSegment) PURE;
STDMETHOD(InitPlay) (THIS_ IDirectMusicSegmentState* pSegmentState,
IDirectMusicPerformance* pPerformance,
void** ppStateData,
DWORD dwVirtualTrackID,
DWORD dwFlags) PURE;
STDMETHOD(EndPlay) (THIS_ void* pStateData) PURE;
STDMETHOD(Play) (THIS_ void* pStateData,
MUSIC_TIME mtStart,
MUSIC_TIME mtEnd,
MUSIC_TIME mtOffset,
DWORD dwFlags,
IDirectMusicPerformance* pPerf,
IDirectMusicSegmentState* pSegSt,
DWORD dwVirtualID) PURE;
STDMETHOD(GetParam) (THIS_ REFGUID rguidType,
MUSIC_TIME mtTime,
MUSIC_TIME* pmtNext,
void* pParam) PURE;
STDMETHOD(SetParam) (THIS_ REFGUID rguidType,
MUSIC_TIME mtTime,
void* pParam) PURE;
STDMETHOD(IsParamSupported) (THIS_ REFGUID rguidType) PURE;
STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(RemoveNotificationType) (THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(Clone) (THIS_ MUSIC_TIME mtStart,
MUSIC_TIME mtEnd,
IDirectMusicTrack** ppTrack) PURE;
};
/*////////////////////////////////////////////////////////////////////
// IDirectMusicPerformance */
#undef INTERFACE
#define INTERFACE IDirectMusicPerformance
DECLARE_INTERFACE_(IDirectMusicPerformance, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicPerformance */
STDMETHOD(Init) (THIS_ IDirectMusic** ppDirectMusic,
LPDIRECTSOUND pDirectSound,
HWND hWnd) PURE;
STDMETHOD(PlaySegment) (THIS_ IDirectMusicSegment* pSegment,
DWORD dwFlags,
__int64 i64StartTime,
IDirectMusicSegmentState** ppSegmentState) PURE;
STDMETHOD(Stop) (THIS_ IDirectMusicSegment* pSegment,
IDirectMusicSegmentState* pSegmentState,
MUSIC_TIME mtTime,
DWORD dwFlags) PURE;
STDMETHOD(GetSegmentState) (THIS_ IDirectMusicSegmentState** ppSegmentState,
MUSIC_TIME mtTime) PURE;
STDMETHOD(SetPrepareTime) (THIS_ DWORD dwMilliSeconds) PURE;
STDMETHOD(GetPrepareTime) (THIS_ DWORD* pdwMilliSeconds) PURE;
STDMETHOD(SetBumperLength) (THIS_ DWORD dwMilliSeconds) PURE;
STDMETHOD(GetBumperLength) (THIS_ DWORD* pdwMilliSeconds) PURE;
STDMETHOD(SendPMsg) (THIS_ DMUS_PMSG* pPMSG) PURE;
STDMETHOD(MusicToReferenceTime) (THIS_ MUSIC_TIME mtTime,
REFERENCE_TIME* prtTime) PURE;
STDMETHOD(ReferenceToMusicTime) (THIS_ REFERENCE_TIME rtTime,
MUSIC_TIME* pmtTime) PURE;
STDMETHOD(IsPlaying) (THIS_ IDirectMusicSegment* pSegment,
IDirectMusicSegmentState* pSegState) PURE;
STDMETHOD(GetTime) (THIS_ REFERENCE_TIME* prtNow,
MUSIC_TIME* pmtNow) PURE;
STDMETHOD(AllocPMsg) (THIS_ ULONG cb,
DMUS_PMSG** ppPMSG) PURE;
STDMETHOD(FreePMsg) (THIS_ DMUS_PMSG* pPMSG) PURE;
STDMETHOD(GetGraph) (THIS_ IDirectMusicGraph** ppGraph) PURE;
STDMETHOD(SetGraph) (THIS_ IDirectMusicGraph* pGraph) PURE;
STDMETHOD(SetNotificationHandle)(THIS_ HANDLE hNotification,
REFERENCE_TIME rtMinimum) PURE;
STDMETHOD(GetNotificationPMsg) (THIS_ DMUS_NOTIFICATION_PMSG** ppNotificationPMsg) PURE;
STDMETHOD(AddNotificationType) (THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE;
STDMETHOD(AddPort) (THIS_ IDirectMusicPort* pPort) PURE;
STDMETHOD(RemovePort) (THIS_ IDirectMusicPort* pPort ) PURE;
STDMETHOD(AssignPChannelBlock) (THIS_ DWORD dwBlockNum,
IDirectMusicPort* pPort,
DWORD dwGroup ) PURE;
STDMETHOD(AssignPChannel) (THIS_ DWORD dwPChannel,
IDirectMusicPort* pPort,
DWORD dwGroup,
DWORD dwMChannel ) PURE;
STDMETHOD(PChannelInfo) (THIS_ DWORD dwPChannel,
IDirectMusicPort** ppPort,
DWORD* pdwGroup,
DWORD* pdwMChannel ) PURE;
STDMETHOD(DownloadInstrument) (THIS_ IDirectMusicInstrument* pInst,
DWORD dwPChannel,
IDirectMusicDownloadedInstrument** ppDownInst,
DMUS_NOTERANGE* pNoteRanges,
DWORD dwNumNoteRanges,
IDirectMusicPort** ppPort,
DWORD* pdwGroup,
DWORD* pdwMChannel ) PURE;
STDMETHOD(Invalidate) (THIS_ MUSIC_TIME mtTime,
DWORD dwFlags) PURE;
STDMETHOD(GetParam) (THIS_ REFGUID rguidType,
DWORD dwGroupBits,
DWORD dwIndex,
MUSIC_TIME mtTime,
MUSIC_TIME* pmtNext,
void* pParam) PURE;
STDMETHOD(SetParam) (THIS_ REFGUID rguidType,
DWORD dwGroupBits,
DWORD dwIndex,
MUSIC_TIME mtTime,
void* pParam) PURE;
STDMETHOD(GetGlobalParam) (THIS_ REFGUID rguidType,
void* pParam,
DWORD dwSize) PURE;
STDMETHOD(SetGlobalParam) (THIS_ REFGUID rguidType,
void* pParam,
DWORD dwSize) PURE;
STDMETHOD(GetLatencyTime) (THIS_ REFERENCE_TIME* prtTime) PURE;
STDMETHOD(GetQueueTime) (THIS_ REFERENCE_TIME* prtTime) PURE;
STDMETHOD(AdjustTime) (THIS_ REFERENCE_TIME rtAmount) PURE;
STDMETHOD(CloseDown) (THIS) PURE;
STDMETHOD(GetResolvedTime) (THIS_ REFERENCE_TIME rtTime,
REFERENCE_TIME* prtResolved,
DWORD dwTimeResolveFlags) PURE;
STDMETHOD(MIDIToMusic) (THIS_ BYTE bMIDIValue,
DMUS_CHORD_KEY* pChord,
BYTE bPlayMode,
BYTE bChordLevel,
WORD *pwMusicValue) PURE;
STDMETHOD(MusicToMIDI) (THIS_ WORD wMusicValue,
DMUS_CHORD_KEY* pChord,
BYTE bPlayMode,
BYTE bChordLevel,
BYTE *pbMIDIValue) PURE;
STDMETHOD(TimeToRhythm) (THIS_ MUSIC_TIME mtTime,
DMUS_TIMESIGNATURE *pTimeSig,
WORD *pwMeasure,
BYTE *pbBeat,
BYTE *pbGrid,
short *pnOffset) PURE;
STDMETHOD(RhythmToTime) (THIS_ WORD wMeasure,
BYTE bBeat,
BYTE bGrid,
short nOffset,
DMUS_TIMESIGNATURE *pTimeSig,
MUSIC_TIME *pmtTime) PURE;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -