您现在的位置:首页 >> 图形媒体 >> 图形媒体 >> 内容

Delphi中获取计算机中的MIDI软波表(MIDI输出端口)

时间:2011/9/3 15:00:35 点击:

  核心提示:unit MySynthesizers;interfaceuses Classes, SysUtils, DirectMusic, ActiveX;  procedure GetSynthesizer...

unit MySynthesizers;

interface

uses
 Classes, SysUtils, DirectMusic, ActiveX; 

 procedure GetSynthesizers(AList: TStrings);

implementation

procedure GetSynthesizers(AList: TStrings);
var
 i: Integer;
 APortInfo: TDMusPortCaps;
 DxMusic: IDirectMusic;
begin
 i := 0;
 AList.Clear;
 CoCreateInstance(CLSID_DirectMusic, nil, CLSCTX_INPROC, IID_IDirectMusic2, DxMusic);

 //以下这句很关键,开始就是由于设少了个size,导致死活拿不到正确结果
 APortInfo.dwSize := SizeOf(APortInfo); 

 while DxMusic.EnumPort(i, APortInfo) = S_OK do
 begin
  if APortInfo.dwClass = DMUS_PC_OUTPUTCLASS then
   AList.Add(APortInfo.wszDescription);

  inc(i);
 end;
end;

initialization
 CoInitialize(nil);

finalization
 CoUninitialize;

end.

作者:harryfin 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2022 版权所有 All Rights Reserved.
  • 沪ICP备05001939号