anchor.diff:                          fdwPrepare: DWORD
                           ): MMResult; stdcall;
   begin
  -  log('acmStreamPrepareHeader');
  +  //log('acmStreamPrepareHeader');
     result:=TrampolineacmStreamPrepareHeader(has, pash, fdwPrepare);
   end;
   
  
positive.code:     TrampolineacmStreamClose := InterceptCreate(GetProcAddress(hng, 'acmStreamClose'), @acmStreamCloseBounce);
      TrampolineacmStreamConvert := InterceptCreate(GetProcAddress(hng, 'acmStreamConvert'), @acmStreamConvertBounce);
  
      TrampolineacmDriverEnum:=InterceptCreate(GetProcAddress(hng, 'acmDriverEnum'), @acmDriverEnumBounce);
      TrampolineacmFormatEnum:=InterceptCreate(GetProcAddress(hng, 'acmFormatEnumW'), @acmFormatEnumBounce);
      TrampolineacmStreamPrepareHeader:=InterceptCreate(GetProcAddress(hng, 'acmStreamPrepareHeader'), @acmStreamPrepareHeaderBounce);
      TrampolineAcmDriveropen:=InterceptCreate(GetProcAddress(hng, 'acmDriverOpen'), @acmDriverOpenBounce);
      TrampolineAcmDriverclose:=InterceptCreate(GetProcAddress(hng, 'acmDriverClose'), @acmDriverCloseBounce);
      TrampolineAcmMetrics:=InterceptCreate(GetProcAddress(hng, 'acmMetrics'), @acmMetricsBounce);
    end;
  
    TrampolineCreateFileA := InterceptCreate(@CreateFileA, @CreateFileABounce);
  
negative.code:                         fdwEnum: DWORD
                          ): MMResult; stdcall;
  begin
    //log('acmFormatEnum('+IntToHex(had, 8)+', ('+IntToStr(pafd.cbStruct)+', '+IntToStr(pafd.cbwfx)+', '+IntToStr(pafd.dwFormatIndex)+
    //', '+IntToStr(pafd.dwFormatTag)+', '+IntToStr(pafd.fdwSupport)+', "'+pafd.szFormat+'"), ..., '+IntToStr(dwInstance)+', '+IntToStr(fdwEnum)+') start');
  
    if not Assigned(fnCallback) then
    begin
      result:=TrampolineacmFormatEnum(had, pafd, fnCallback, dwInstance, fdwEnum);
      //log('no callback in acmFormatEnum');
    end else
    begin
      //if Assigned(originalacmFormatEnumCallback) then
      //  log('acmFormatEnum is being used multithreaded (or this code is broken). Either way, crap');
  
      originalacmFormatEnumCallback:=fnCallback;
      result:=TrampolineacmFormatEnum(had, pafd, @myacmFormatEnumCallback, dwInstance, fdwEnum);
      originalacmFormatEnumCallback:=nil;
    end;
    //log('acmFormatEnum('+IntToHex(had, 8)+', ('+IntToStr(pafd.cbStruct)+', '+IntToStr(pafd.cbwfx)+', '+IntToStr(pafd.dwFormatIndex)+
    //', '+IntToStr(pafd.dwFormatTag)+', '+IntToStr(pafd.fdwSupport)+', "'+pafd.szFormat+'"), ..., '+IntToStr(dwInstance)+', '+IntToStr(fdwEnum)+') = '+IntToStr(result));
    //LogFormat('pafd fmt', pafd.pwfx);
  end;
  
  
  