106 lines
2.8 KiB
C
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 */ |