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

106 lines
2.8 KiB
C

/*
dmbndtrk.h
Copyright (c) 1997-1998 Microsoft Corporation. All rights reserved.
Note: Contains private interfaces support by objects contained within
dmband.dll. Originally written by Robert K. Amenn
*/
#ifndef DMBNDTRK_H
#define DMBNDTRK_H
#include <windows.h>
#define COM_NO_WINDOWS_H
#include <objbase.h>
#ifdef __cplusplus
extern "C" {
#endif
struct IDirectMusicBand;
typedef struct _DMUS_IO_PATCH_ITEM
{
MUSIC_TIME lTime;
BYTE byStatus;
BYTE byPChange;
BYTE byMSB;
BYTE byLSB;
DWORD dwFlags;
BOOL fNotInFile; // set to true if this patch item was automatically generated
IDirectMusicCollection* pIDMCollection;
struct _DMUS_IO_PATCH_ITEM* pNext;
} DMUS_IO_PATCH_ITEM;
typedef enum enumDMUS_MIDIMODEF_FLAGS
{
DMUS_MIDIMODEF_GM = 0x1,
DMUS_MIDIMODEF_GS = 0x2,
DMUS_MIDIMODEF_XG = 0x4,
} DMUS_MIDIMODEF_FLAGS;
struct StampedGMGSXG
{
MUSIC_TIME mtTime;
DWORD dwMidiMode;
};
/* Private Interface IDirectMusicBandTrk */
interface IDirectMusicBandTrk;
#ifndef __cplusplus
typedef interface IDirectMusicBandTrk IDirectMusicBandTrk;
#endif
typedef IDirectMusicBandTrk __RPC_FAR *LPDIRECTMUSICBANDTRK;
#undef INTERFACE
#define INTERFACE IDirectMusicBandTrk
DECLARE_INTERFACE_(IDirectMusicBandTrk, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicBandTrk */
STDMETHOD(AddBand) (THIS_ DMUS_IO_PATCH_ITEM*) PURE;
STDMETHOD(AddBand) (THIS_ IDirectMusicBand* pIDMBand) PURE;
STDMETHOD(SetGMGSXGMode) (THIS_ MUSIC_TIME mtTime, DWORD dwMidiMode) PURE;
};
/* Private Interface IDirectMusicBandPrivate */
interface IDirectMusicBandPrivate;
#ifndef __cplusplus
typedef interface IDirectMusicBandPrivate IDirectMusicBandPrivate;
#endif
typedef IDirectMusicBandPrivate __RPC_FAR *LPDIRECTMUSICBANDP;
#undef INTERFACE
#define INTERFACE IDirectMusicBandPrivate
DECLARE_INTERFACE_(IDirectMusicBandPrivate, IUnknown)
{
/* IUnknown */
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID FAR *) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
/* IDirectMusicBandPrivate */
STDMETHOD(GetFlags) (THIS_ DWORD* dwFlags) PURE;
STDMETHOD(SetGMGSXGMode) (THIS_ DWORD dwMidiMode) PURE;
};
DEFINE_GUID(IID_IDirectMusicBandTrk, 0x53466056, 0x6dc4, 0x11d1, 0xbf, 0x7b, 0x0, 0xc0, 0x4f, 0xbf, 0x8f, 0xef);
DEFINE_GUID(IID_IDirectMusicBandPrivate,0xda54db81, 0x837d, 0x11d1, 0x86, 0xbc, 0x0, 0xc0, 0x4f, 0xbf, 0x8f, 0xef);
#ifdef __cplusplus
}; /* extern "C" */
#endif
#endif /* #ifndef DMBNDTRK_H */