static long midimsg(COMMNG self, UINT msg, long param) { CMMIDI midi; COMFLAG flag; midi = (CMMIDI)(self + 1); switch(msg) { case COMMSG_MIDIRESET: midireset(midi); return(1); case COMMSG_SETFLAG: flag = (COMFLAG)param; if ((flag) && (flag->size == sizeof(_COMFLAG) + sizeof(midi->mch)) && (flag->sig == COMSIG_MIDI)) { CopyMemory(midi->mch, flag + 1, sizeof(midi->mch)); midisetparam(midi); return(1); } break; case COMMSG_GETFLAG: flag = (COMFLAG)_MALLOC(sizeof(_COMFLAG) + sizeof(midi->mch), "MIDI FLAG"); if (flag) { flag->size = sizeof(_COMFLAG) + sizeof(midi->mch); flag->sig = COMSIG_MIDI; flag->ver = 0; flag->param = 0; CopyMemory(flag + 1, midi->mch, sizeof(midi->mch)); return((long)flag); } break; case COMMSG_MIMPIDEFFILE: mimpidef_load(&midi->def, (OEMCHAR *)param); return(1); case COMMSG_MIMPIDEFEN: midi->def_en = (param)?TRUE:FALSE; return(1); } return(0); }
static INTPTR midimsg(COMMNG self, UINT msg, INTPTR param) { CMMIDI midi; COMFLAG flag; midi = (CMMIDI)(self + 1); switch (msg) { case COMMSG_MIDIRESET: midireset(midi); return 1; case COMMSG_SETFLAG: flag = (COMFLAG)param; if ((flag) && (flag->size == sizeof(_COMFLAG) + sizeof(midi->mch)) && (flag->sig == COMSIG_MIDI)) { CopyMemory(midi->mch, flag + 1, sizeof(midi->mch)); midisetparam(midi); return 1; } break; case COMMSG_GETFLAG: flag = (COMFLAG)_MALLOC(sizeof(_COMFLAG) + sizeof(midi->mch), "MIDI FLAG"); if (flag) { flag->size = sizeof(_COMFLAG) + sizeof(midi->mch); flag->sig = COMSIG_MIDI; flag->ver = 0; flag->param = 0; CopyMemory(flag + 1, midi->mch, sizeof(midi->mch)); return (INTPTR)flag; } break; } return 0; }