//
//程序应该是获得所有TTS引擎的枚举,然后一个个显示在ComboBox1中供用户选择,
//但为什么出来的只有一个“sam”,而事实上机器有3个英文和1个中文啊。
//这代码是2000年下载的,注明了适用Win2K的。procedure TForm1.Button1Click(Sender: TObject);
var
  NumFound : DWord;
  ModeInfo : TTSModeInfo;
  I : Integer;
begin
    I := 0;
    {Create TTS Enumerator object with the interface ITTSEnum and return the pointer in aITTSEnum}
    OleCheck(CoCreateInstance(CLSID_TTSEnumerator, Nil, CLSCTX_ALL, IID_ITTSEnum, aTTSEnum));    OleCheck(aTTSEnum.Reset);
    OleCheck(aTTSEnum.Next(1, ModeInfo, @NumFound));  {First Get}
    
    While NumFound > 0 do
    begin
      ComboBox1.Items.Add(String(ModeInfo.szModeName));
      OleCheck(aTTSEnum.Next(1, ModeInfo, @NumFound)); {additional gets}
      Inc(I);
    end;
  end;
  Label1.Caption := IntToStr(I) + ' Engines Available';
end;