You must create new MCI command structures whenever you extend existing commands or define new ones. For every command description you place in a customized command table, you must define a customized data structure. Place this definition in an include file that is available both to your driver and to application developers. Structure definitions for the core commands reside in mmsystem.h.
Command structure definitions follow a standardized format. A typical structure is the following MCI_STATUS_PARMS structure, used with the “status” command.
typedef struct tagMCI_STATUS_PARMS { DWORD dwCallback; DWORD dwReturn; DWORD dwItem; DWORD dwTrack; } MCI_STATUS_PARMS;
There are rules you should follow for naming command structures, laying out command structures, and referencing command structures.