|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef __IDF_H__ | 
|  | #define __IDF_H__ | 
|  |  | 
|  | typedef struct tag_IDFHEADER { | 
|  | DWORD cbStruct; | 
|  | DWORD dwVersion; | 
|  | DWORD dwCreator; | 
|  | DWORD cbInstID; | 
|  | BYTE abInstID[1]; | 
|  | } IDFHEADER,*PIDFHEADER,*LPIDFHEADER; | 
|  |  | 
|  | typedef struct tag_IDFINSTINFO { | 
|  | DWORD cbStruct; | 
|  | DWORD dwManufactID; | 
|  | DWORD dwProductID; | 
|  | DWORD dwRevision; | 
|  | DWORD cbManufactASCII; | 
|  | DWORD cbManufactUNICODE; | 
|  | DWORD cbProductASCII; | 
|  | DWORD cbProductUNICODE; | 
|  | BYTE abData[1]; | 
|  | } IDFINSTINFO,*LPIDFINSTINFO; | 
|  |  | 
|  | typedef struct tag_IDFINSTCAPS { | 
|  | DWORD cbStruct; | 
|  | DWORD fdwFlags; | 
|  | DWORD dwBasicChannel; | 
|  | DWORD cNumChannels; | 
|  | DWORD cInstrumentPolyphony; | 
|  | DWORD cChannelPolyphony; | 
|  | } IDFINSTCAPS,*PIDFINSTCAPS,*LPIDFINSTCAPS; | 
|  |  | 
|  | #define IDFINSTCAPS_F_GENERAL_MIDI 0x00000001 | 
|  | #define IDFINSTCAPS_F_SYSTEMEXCLUSIVE 0x00000002 | 
|  |  | 
|  | typedef struct tag_IDFCHANNELHDR { | 
|  | DWORD cbStruct; | 
|  | DWORD dwGeneralMask; | 
|  | DWORD dwDrumMask; | 
|  | DWORD dwReserved; | 
|  | DWORD fdwFlags; | 
|  | } IDFCHANNELHDR,*PIDFCHANNELHDR,*LPIDFCHANNELHDR; | 
|  |  | 
|  | #define IDFCHANNELHDR_F_GENERAL_MIDI 0x00000001 | 
|  |  | 
|  | typedef struct tag_IDFCHANNELINFO { | 
|  | DWORD cbStruct; | 
|  | DWORD dwChannel; | 
|  | DWORD cbInitData; | 
|  | BYTE abData[]; | 
|  | } IDFCHANNELINFO,*PIDFCHANNELINFO,*LPIDFCHANNELINFO; | 
|  |  | 
|  | typedef struct tag_IDFPATCHMAPHDR { | 
|  | DWORD cbStruct; | 
|  | BYTE abPatchMap[128]; | 
|  | } IDFPATCHMAPHDR,*PIDFPATCHMAPHDR,*LPIDFPATCHMAPHDR; | 
|  |  | 
|  | typedef struct tag_IDFKEYMAPHDR { | 
|  | DWORD cbStruct; | 
|  | DWORD cNumKeyMaps; | 
|  | DWORD cbKeyMap; | 
|  | } IDFKEYMAPHDR,*PIDFKEYMAPHDR,*LPIDFKEYMAPHDR; | 
|  |  | 
|  | typedef struct tag_IDFKEYMAP { | 
|  | DWORD cbStruct; | 
|  | BYTE abKeyMap[128]; | 
|  | } IDFKEYMAP,*PIDFKEYMAP,*LPIDFKEYMAP; | 
|  |  | 
|  | #endif |