// MSPromptEng.idl : IDL source for MSPromptEng.dll
//
// This file will be processed by the MIDL tool to
// produce the type library (MSPromptEng.tlb) and marshalling code.
//
// Created by JOEM  01-2000
// Copyright (C) 2000 Microsoft Corporation
// All Rights Reserved
//


import "oaidl.idl";
import "ocidl.idl";
import "sapiddk.idl";

    [
        object,
        uuid(7ba9b129-7877-4398-86a3-049c1d410f58),
        helpstring("IPromptEntry Interface"),
        pointer_default(unique)
    ]
    interface IPromptEntry : IUnknown
    {
		[helpstring("method SetId")] HRESULT SetId(const WCHAR* pszId);
		[helpstring("method GetId")] HRESULT GetId(const WCHAR** pszId);
		[helpstring("method SetText")] HRESULT SetText(const WCHAR* pszText);
		[helpstring("method GetText")] HRESULT GetText(const WCHAR** pszText);
		[helpstring("method SetOriginalText")] HRESULT SetOriginalText(const WCHAR* pszText);
		[helpstring("method GetOriginalText")] HRESULT GetOriginalText(const WCHAR** pszText);
		[helpstring("method SetFileName")] HRESULT SetFileName(const WCHAR* pszFileName);
		[helpstring("method GetFileName")] HRESULT GetFileName(const WCHAR** pszFileName);
		[helpstring("method SetStartPhone")] HRESULT SetStartPhone(const WCHAR* pszStartPhone);
		[helpstring("method GetStartPhone")] HRESULT GetStartPhone(const WCHAR** ppszStartPhone);
		[helpstring("method SetEndPhone")] HRESULT SetEndPhone(const WCHAR* pszEndPhone);
		[helpstring("method GetEndPhone")] HRESULT GetEndPhone(const WCHAR** ppszEndPhone);
		[helpstring("method SetLeftContext")] HRESULT SetLeftContext(const WCHAR* pszLeftContext);
		[helpstring("method GetLeftContext")] HRESULT GetLeftContext(const WCHAR** ppszLeftContext);
		[helpstring("method SetRightContext")] HRESULT SetRightContext(const WCHAR* pszRightContext);
		[helpstring("method GetRightContext")] HRESULT GetRightContext(const WCHAR** ppszRightContext);
		[helpstring("method SetStart")] HRESULT SetStart(const double dFrom);
		[helpstring("method GetStart")] HRESULT GetStart(double* dFrom);
		[helpstring("method SetEnd")] HRESULT SetEnd(const double dTo);
		[helpstring("method GetEnd")] HRESULT GetEnd(double* dTo);
		[helpstring("method AddTag")] HRESULT AddTag(const WCHAR* pszTag);
		[helpstring("method RemoveTag")] HRESULT RemoveTag(const USHORT unId);
		[helpstring("method GetTag")] HRESULT GetTag(const WCHAR** ppszTag, const USHORT unId);
		[helpstring("method CountTags")] HRESULT CountTags(USHORT* unTagCount);
		[helpstring("method GetSamples")] HRESULT GetSamples(SHORT** pnSamples, int* iNumSamples, WAVEFORMATEX* pFormat);
		[helpstring("method GetFormat")] HRESULT GetFormat(WAVEFORMATEX** ppFormat);
    }
	[
		object,
		uuid(58FE62DE-9BBB-4538-B2BB-FA9766FF2F84),	
		helpstring("IPromptDb Interface"),
		pointer_default(unique)
	]
	interface IPromptDb : IUnknown
	{
		[helpstring("method NewDb")] HRESULT NewDb(const WCHAR *logicalName, const WCHAR *pathName);
		[helpstring("method AddDb")] HRESULT AddDb(const WCHAR *logicalName, const WCHAR *pathName, const WCHAR *pszIdSet, const USHORT loadOption);
		[helpstring("method UnloadDb")] HRESULT UnloadDb(const WCHAR* pszLogicalName);
		[helpstring("method ActivateDbName")] HRESULT ActivateDbName(const WCHAR *pszLogicalName);
		[helpstring("method ActivateDbNumber")] HRESULT ActivateDbNumber(const USHORT unIndex);
		[helpstring("method UpdateDb")] HRESULT UpdateDb(WCHAR* pszPath);
		[helpstring("method CountDb")] HRESULT CountDb(USHORT *unCount);
		[helpstring("method SearchDb")] HRESULT SearchDb(const WCHAR* pszQuery, USHORT* unIdCount);
		[helpstring("method RetrieveSearchItem")] HRESULT RetrieveSearchItem(const USHORT unId, const WCHAR** ppszId);
		[helpstring("method GetLogicalName")] HRESULT GetLogicalName(const WCHAR** ppszLogicalName);
		[helpstring("method GetNextEntry")] HRESULT GetNextEntry(USHORT* punId1, USHORT* punId2, IPromptEntry** ppIPE);
		[helpstring("method FindEntry")] HRESULT FindEntry(const WCHAR* id, IPromptEntry** ppIPE);
		[helpstring("method NewEntry")] HRESULT NewEntry(IPromptEntry** ppIPE);
		[helpstring("method SaveEntry")] HRESULT SaveEntry(IPromptEntry* pIPE);
		[helpstring("method RemoveEntry")] HRESULT RemoveEntry(const WCHAR* id);
		[helpstring("method OpenEntryFile")] HRESULT OpenEntryFile(IPromptEntry* pIPE, WAVEFORMATEX* pWaveFormatEx);
		[helpstring("method CloseEntryFile")] HRESULT CloseEntryFile();
		[helpstring("method GetPromptFormat")] HRESULT GetPromptFormat(WAVEFORMATEX **ppwf);
		[helpstring("method SetOutputFormat")] HRESULT SetOutputFormat(const GUID * pOutputFormatId, const WAVEFORMATEX *pOutputFormat);
		[helpstring("method SetEntryGain")] HRESULT SetEntryGain(const double dEntryGain);
		[helpstring("method SetXMLVolume")] HRESULT SetXMLVolume(const ULONG ulXMLVol);
		[helpstring("method SetXMLRate")] HRESULT SetXMLRate(const long lXMLRate);
		[helpstring("method SendEntrySamples")] HRESULT SendEntrySamples(IPromptEntry* pIPE, ISpTTSEngineSite* pOutputSite, ULONG ulTextOffset, ULONG ulTextLen);
	}

[
	uuid(30DD8119-2647-46E2-AB2C-E7B8404D58ED),
	version(1.0),
	helpstring("MS Prompt Engine 1.0 Type Library")
]
library MSPROMPTENGLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(4BA3C5FA-2236-4EE7-BA28-1C8B39D31D48),
		helpstring("PromptEng Class")
	]
	coclass PromptEng
	{
   		[default] interface ISpTTSEngine;
        interface ISpObjectWithToken;

	};
	[
		uuid(B1F6D8FF-0F5E-4DEC-B2F5-D581BBBF2575),
		helpstring("PromptDb Class")
	]
	coclass PromptDb
	{
		[default] interface IPromptDb;
	};

};
