WinAPI:midiOutLongMsg-システム専用のMIDIメッセージを出力装置に送信

1227 ワード

ヒント:midiOutLongMsgにバッファを渡す前に、midiOutPrepareHeader準備を呼び出します.また、GMEM_MOVEABLE、GMEM_SHAREを使用する、GlobalAllocを呼び出してTMidiHdrおよびlpDataが指すバッファにメモリを割り当て、GMEM_MOVEABLEを使用する.


//  :

midiOutLongMsg(

  hMidiOut: HMIDIOUT;     {    }

  lpMidiOutHdr: PMidiHdr; {TMidiHdr      }

  uSize: UINT             {TMidiHdr      }

): MMRESULT;              {     0;         :}



MMSYSERR_INVALHANDLE = 5;  {      }

MIDIERR_UNPREPARED   = 64; {    TMidiHdr      }

MIDIERR_NOTREADY     = 67; {        }



//TMidiHdr   midihdr_tag       :

midihdr_tag = record

  lpData: PChar;               {        }

  dwBufferLength: DWORD;       {       }

  dwBytesRecorded: DWORD;      {   ,           }

  dwUser: DWORD;               {      }

  dwFlags: DWORD;              {         }

  lpNext: PMidiHdr;            {  (   )}

  reserved: DWORD;             {  (   )}

  dwOffset: DWORD;             {     ,       }

  dwReserved: array[0..7] of DWORD; {  (   )}

end;



//dwFlags     :

MHDR_DONE     = $00000001; {            }

MHDR_PREPARED = $00000002; {   midiInPrepareHeader   midiOutPrepareHeader       }

MHDR_INQUEUE  = $00000004; {  (   )}

MHDR_ISSTRM   = $00000008; {     }


 
   
// :