#ifndef _INC_MMSYSTEM #include "mmsystem.h" #endif BOOL MyFunction(DWORD someparam) { BOOL result=false; HMODULE hWinMM=LoadLibrary("winmm.dll"); if (hWinMM) { typedef MMRESULT (WINAPI*midiOutPrepareHeader_Type)(HMIDIOUT hmo,LPMIDIHDR lpMidiOutHdr,UINT cbMidiOutHdr); typedef MMRESULT (WINAPI*midiOutLongMsg_Type)(HMIDIOUT hmo,LPMIDIHDR lpMidiOutHdr,UINT cbMidiOutHdr); typedef MMRESULT (WINAPI*midiOutUnprepareHeader_Type)(HMIDIOUT hmo,LPMIDIHDR lpMidiOutHdr,UINT cbMidiOutHdr); midiOutPrepareHeader_Type pmidiOutPrepareHeader=(midiOutPrepareHeader_Type)GetProcAddress(hWinMM,"midiOutPrepareHeader"); midiOutLongMsg_Type pmidiOutLongMsg=(midiOutLongMsg_Type)GetProcAddress(hWinMM,"midiOutLongMsg"); midiOutUnprepareHeader_Type pmidiOutUnprepareHeader=(midiOutUnprepareHeader_Type)GetProcAddress(hWinMM,"midiOutUnprepareHeader"); if (pmidiOutPrepareHeader && pmidiOutLongMsg && pmidiOutUnprepareHeader { //we now have all 3 function pointers and can call those functions... MMRESULT ret=pmidiOutPrepareHeader(something); if (ret==something) { ret=pmidiOutLongMsg(something); pmidiOutUnprepareHeader(something); } result=(ret==0); } FreeLibrary(hWinMM); } return result; }