// // Copyright (c) Microsoft Corporation. All rights reserved. cpp_quote("/* Copyright (c) Microsoft Corporation. All rights reserved. */") #ifndef __TAPI3IF_IDL__ #define __TAPI3IF_IDL__ import "oaidl.idl"; import "basetsd.h"; import "strmif.idl"; midl_pragma warning( disable: 2039 ) cpp_quote("#if 0") #ifdef _X86_ typedef long TAPIHWND; #else typedef LONGLONG TAPIHWND; #endif cpp_quote("#endif") cpp_quote("#ifdef _X86_") cpp_quote("typedef long TAPIHWND;") cpp_quote("#else") cpp_quote("typedef LONGLONG TAPIHWND;") cpp_quote("#endif") typedef long TAPI_DIGITMODE; typedef enum TAPI_TONEMODE { TTM_RINGBACK = 0x00000002, TTM_BUSY = 0x00000004, TTM_BEEP = 0x00000008, TTM_BILLING = 0x00000010 } TAPI_TONEMODE; typedef enum TAPI_GATHERTERM { TGT_BUFFERFULL = 0x00000001, TGT_TERMDIGIT = 0x00000002, TGT_FIRSTTIMEOUT = 0x00000004, TGT_INTERTIMEOUT = 0x00000008, TGT_CANCEL = 0x00000010 } TAPI_GATHERTERM; typedef struct TAPI_CUSTOMTONE { DWORD dwFrequency; DWORD dwCadenceOn; DWORD dwCadenceOff; DWORD dwVolume; } TAPI_CUSTOMTONE, *LPTAPI_CUSTOMTONE; typedef struct TAPI_DETECTTONE { DWORD dwAppSpecific; DWORD dwDuration; DWORD dwFrequency1; DWORD dwFrequency2; DWORD dwFrequency3; } TAPI_DETECTTONE, *LPTAPI_DETECTTONE; typedef enum ADDRESS_EVENT { AE_STATE, AE_CAPSCHANGE, AE_RINGING, AE_CONFIGCHANGE, AE_FORWARD, AE_NEWTERMINAL, AE_REMOVETERMINAL, AE_MSGWAITON, AE_MSGWAITOFF, AE_LASTITEM = AE_MSGWAITOFF } ADDRESS_EVENT; typedef enum ADDRESS_STATE { AS_INSERVICE, AS_OUTOFSERVICE } ADDRESS_STATE; typedef enum CALL_STATE { CS_IDLE, CS_INPROGRESS, CS_CONNECTED, CS_DISCONNECTED, CS_OFFERING, CS_HOLD, CS_QUEUED, CS_LASTITEM = CS_QUEUED } CALL_STATE; typedef enum CALL_STATE_EVENT_CAUSE { CEC_NONE, CEC_DISCONNECT_NORMAL, CEC_DISCONNECT_BUSY, CEC_DISCONNECT_BADADDRESS, CEC_DISCONNECT_NOANSWER, CEC_DISCONNECT_CANCELLED, CEC_DISCONNECT_REJECTED, CEC_DISCONNECT_FAILED, CEC_DISCONNECT_BLOCKED } CALL_STATE_EVENT_CAUSE; typedef enum CALL_MEDIA_EVENT { CME_NEW_STREAM, CME_STREAM_FAIL, CME_TERMINAL_FAIL, CME_STREAM_NOT_USED, CME_STREAM_ACTIVE, CME_STREAM_INACTIVE, CME_LASTITEM = CME_STREAM_INACTIVE } CALL_MEDIA_EVENT; typedef enum CALL_MEDIA_EVENT_CAUSE { CMC_UNKNOWN, CMC_BAD_DEVICE, CMC_CONNECT_FAIL, CMC_LOCAL_REQUEST, CMC_REMOTE_REQUEST, CMC_MEDIA_TIMEOUT, CMC_MEDIA_RECOVERED, CMC_QUALITY_OF_SERVICE } CALL_MEDIA_EVENT_CAUSE; typedef enum DISCONNECT_CODE { DC_NORMAL, DC_NOANSWER, DC_REJECTED } DISCONNECT_CODE; typedef enum TERMINAL_STATE { TS_INUSE, TS_NOTINUSE } TERMINAL_STATE; typedef enum TERMINAL_DIRECTION { TD_CAPTURE, TD_RENDER, TD_BIDIRECTIONAL, TD_MULTITRACK_MIXED, TD_NONE } TERMINAL_DIRECTION; typedef enum TERMINAL_TYPE { TT_STATIC, TT_DYNAMIC } TERMINAL_TYPE; typedef enum CALL_PRIVILEGE { CP_OWNER, CP_MONITOR } CALL_PRIVILEGE; typedef enum TAPI_EVENT { TE_TAPIOBJECT = 0x00000001, TE_ADDRESS = 0x00000002, TE_CALLNOTIFICATION = 0x00000004, TE_CALLSTATE = 0x00000008, TE_CALLMEDIA = 0x00000010, TE_CALLHUB = 0x00000020, TE_CALLINFOCHANGE = 0x00000040, TE_PRIVATE = 0x00000080, TE_REQUEST = 0x00000100, TE_AGENT = 0x00000200, TE_AGENTSESSION = 0x00000400, TE_QOSEVENT = 0x00000800, TE_AGENTHANDLER = 0x00001000, TE_ACDGROUP = 0x00002000, TE_QUEUE = 0x00004000, TE_DIGITEVENT = 0x00008000, TE_GENERATEEVENT = 0x00010000, TE_ASRTERMINAL = 0x00020000, TE_TTSTERMINAL = 0x00040000, TE_FILETERMINAL = 0x00080000, TE_TONETERMINAL = 0x00100000, TE_PHONEEVENT = 0x00200000, TE_TONEEVENT = 0x00400000, TE_GATHERDIGITS = 0x00800000, TE_ADDRESSDEVSPECIFIC = 0x01000000, TE_PHONEDEVSPECIFIC = 0x02000000 } TAPI_EVENT; typedef enum CALL_NOTIFICATION_EVENT { CNE_OWNER, CNE_MONITOR, CNE_LASTITEM = CNE_MONITOR } CALL_NOTIFICATION_EVENT; typedef enum CALLHUB_EVENT { CHE_CALLJOIN, CHE_CALLLEAVE, CHE_CALLHUBNEW, CHE_CALLHUBIDLE, CHE_LASTITEM = CHE_CALLHUBIDLE } CALLHUB_EVENT; typedef enum CALLHUB_STATE { CHS_ACTIVE, CHS_IDLE } CALLHUB_STATE; typedef enum TAPIOBJECT_EVENT { TE_ADDRESSCREATE, TE_ADDRESSREMOVE, TE_REINIT, TE_TRANSLATECHANGE, TE_ADDRESSCLOSE, TE_PHONECREATE, TE_PHONEREMOVE } TAPIOBJECT_EVENT; typedef enum TAPI_OBJECT_TYPE { TOT_NONE, TOT_TAPI, TOT_ADDRESS, TOT_TERMINAL, TOT_CALL, TOT_CALLHUB, TOT_PHONE } TAPI_OBJECT_TYPE; typedef enum QOS_SERVICE_LEVEL { QSL_NEEDED = 1, QSL_IF_AVAILABLE = 2, QSL_BEST_EFFORT = 3 } QOS_SERVICE_LEVEL; typedef enum QOS_EVENT { QE_NOQOS = 1, QE_ADMISSIONFAILURE = 2, QE_POLICYFAILURE = 3, QE_GENERICERROR = 4, QE_LASTITEM = QE_GENERICERROR } QOS_EVENT; typedef enum CALLINFOCHANGE_CAUSE { CIC_OTHER, CIC_DEVSPECIFIC, CIC_BEARERMODE, CIC_RATE, CIC_APPSPECIFIC, CIC_CALLID, CIC_RELATEDCALLID, CIC_ORIGIN, CIC_REASON, CIC_COMPLETIONID, CIC_NUMOWNERINCR, CIC_NUMOWNERDECR, CIC_NUMMONITORS, CIC_TRUNK, CIC_CALLERID, CIC_CALLEDID, CIC_CONNECTEDID, CIC_REDIRECTIONID, CIC_REDIRECTINGID, CIC_USERUSERINFO, CIC_HIGHLEVELCOMP, CIC_LOWLEVELCOMP, CIC_CHARGINGINFO, CIC_TREATMENT, CIC_CALLDATA, CIC_PRIVILEGE, CIC_MEDIATYPE, CIC_LASTITEM = CIC_MEDIATYPE } CALLINFOCHANGE_CAUSE; typedef enum CALLINFO_LONG { CIL_MEDIATYPESAVAILABLE, CIL_BEARERMODE, CIL_CALLERIDADDRESSTYPE, CIL_CALLEDIDADDRESSTYPE, CIL_CONNECTEDIDADDRESSTYPE, CIL_REDIRECTIONIDADDRESSTYPE, CIL_REDIRECTINGIDADDRESSTYPE, CIL_ORIGIN, CIL_REASON, CIL_APPSPECIFIC, CIL_CALLPARAMSFLAGS, CIL_CALLTREATMENT, CIL_MINRATE, CIL_MAXRATE, CIL_COUNTRYCODE, CIL_CALLID, CIL_RELATEDCALLID, CIL_COMPLETIONID, CIL_NUMBEROFOWNERS, CIL_NUMBEROFMONITORS, CIL_TRUNK, CIL_RATE, CIL_GENERATEDIGITDURATION, CIL_MONITORDIGITMODES, CIL_MONITORMEDIAMODES } CALLINFO_LONG; typedef enum CALLINFO_STRING { CIS_CALLERIDNAME, CIS_CALLERIDNUMBER, CIS_CALLEDIDNAME, CIS_CALLEDIDNUMBER, CIS_CONNECTEDIDNAME, CIS_CONNECTEDIDNUMBER, CIS_REDIRECTIONIDNAME, CIS_REDIRECTIONIDNUMBER, CIS_REDIRECTINGIDNAME, CIS_REDIRECTINGIDNUMBER, CIS_CALLEDPARTYFRIENDLYNAME, CIS_COMMENT, CIS_DISPLAYABLEADDRESS, CIS_CALLINGPARTYID } CALLINFO_STRING; typedef enum CALLINFO_BUFFER { CIB_USERUSERINFO, CIB_DEVSPECIFICBUFFER, CIB_CALLDATABUFFER, CIB_CHARGINGINFOBUFFER, CIB_HIGHLEVELCOMPATIBILITYBUFFER, CIB_LOWLEVELCOMPATIBILITYBUFFER } CALLINFO_BUFFER; typedef enum ADDRESS_CAPABILITY { AC_ADDRESSTYPES, AC_BEARERMODES, AC_MAXACTIVECALLS, AC_MAXONHOLDCALLS, AC_MAXONHOLDPENDINGCALLS, AC_MAXNUMCONFERENCE, AC_MAXNUMTRANSCONF, AC_MONITORDIGITSUPPORT, AC_GENERATEDIGITSUPPORT, AC_GENERATETONEMODES, AC_GENERATETONEMAXNUMFREQ, AC_MONITORTONEMAXNUMFREQ, AC_MONITORTONEMAXNUMENTRIES, AC_DEVCAPFLAGS, AC_ANSWERMODES, AC_LINEFEATURES, AC_SETTABLEDEVSTATUS, AC_PARKSUPPORT, AC_CALLERIDSUPPORT, AC_CALLEDIDSUPPORT, AC_CONNECTEDIDSUPPORT, AC_REDIRECTIONIDSUPPORT, AC_REDIRECTINGIDSUPPORT, AC_ADDRESSCAPFLAGS, AC_CALLFEATURES1, AC_CALLFEATURES2, AC_REMOVEFROMCONFCAPS, AC_REMOVEFROMCONFSTATE, AC_TRANSFERMODES, AC_ADDRESSFEATURES, AC_PREDICTIVEAUTOTRANSFERSTATES, AC_MAXCALLDATASIZE, AC_LINEID, AC_ADDRESSID, AC_FORWARDMODES, AC_MAXFORWARDENTRIES, AC_MAXSPECIFICENTRIES, AC_MINFWDNUMRINGS, AC_MAXFWDNUMRINGS, AC_MAXCALLCOMPLETIONS, AC_CALLCOMPLETIONCONDITIONS, AC_CALLCOMPLETIONMODES, AC_PERMANENTDEVICEID, AC_GATHERDIGITSMINTIMEOUT, AC_GATHERDIGITSMAXTIMEOUT, AC_GENERATEDIGITMINDURATION, AC_GENERATEDIGITMAXDURATION, AC_GENERATEDIGITDEFAULTDURATION } ADDRESS_CAPABILITY; typedef enum ADDRESS_CAPABILITY_STRING { ACS_PROTOCOL, ACS_ADDRESSDEVICESPECIFIC, ACS_LINEDEVICESPECIFIC, ACS_PROVIDERSPECIFIC, ACS_SWITCHSPECIFIC, ACS_PERMANENTDEVICEGUID } ADDRESS_CAPABILITY_STRING; typedef enum FULLDUPLEX_SUPPORT { FDS_SUPPORTED, FDS_NOTSUPPORTED, FDS_UNKNOWN } FULLDUPLEX_SUPPORT; typedef enum FINISH_MODE { FM_ASTRANSFER, FM_ASCONFERENCE } FINISH_MODE; typedef enum PHONE_PRIVILEGE { PP_OWNER, PP_MONITOR } PHONE_PRIVILEGE; // // the hookswitch types // typedef enum PHONE_HOOK_SWITCH_DEVICE { PHSD_HANDSET = 0x00000001, PHSD_SPEAKERPHONE = 0x00000002, PHSD_HEADSET = 0x00000004 } PHONE_HOOK_SWITCH_DEVICE; // // hookswitch mode // typedef enum PHONE_HOOK_SWITCH_STATE { PHSS_ONHOOK = 0x00000001, PHSS_OFFHOOK_MIC_ONLY = 0x00000002, PHSS_OFFHOOK_SPEAKER_ONLY = 0x00000004, PHSS_OFFHOOK = 0x00000008 } PHONE_HOOK_SWITCH_STATE; // // lamp mode // how the lamp is flashing. // as defined in TAPI 2.x // typedef enum PHONE_LAMP_MODE { LM_DUMMY = 0x00000001, LM_OFF = 0x00000002, LM_STEADY = 0x00000004, LM_WINK = 0x00000008, LM_FLASH = 0x00000010, LM_FLUTTER = 0x00000020, LM_BROKENFLUTTER = 0x00000040, LM_UNKNOWN = 0x00000080 } PHONE_LAMP_MODE; // // capabilities of the phone // typedef enum PHONECAPS_LONG { PCL_HOOKSWITCHES, PCL_HANDSETHOOKSWITCHMODES, PCL_HEADSETHOOKSWITCHMODES, PCL_SPEAKERPHONEHOOKSWITCHMODES, PCL_DISPLAYNUMROWS, PCL_DISPLAYNUMCOLUMNS, PCL_NUMRINGMODES, PCL_NUMBUTTONLAMPS, PCL_GENERICPHONE } PHONECAPS_LONG; // // capabilities of the phone (strings) // typedef enum PHONECAPS_STRING { PCS_PHONENAME, PCS_PHONEINFO, PCS_PROVIDERINFO } PHONECAPS_STRING; // // capabilities of the phone (buffers) // typedef enum PHONECAPS_BUFFER { PCB_DEVSPECIFICBUFFER } PHONECAPS_BUFFER; // // state of the button // do we need to reflect the one shot vs. state? // typedef enum PHONE_BUTTON_STATE { PBS_UP = 0x00000001, PBS_DOWN = 0x00000002, PBS_UNKNOWN = 0x00000004, PBS_UNAVAIL = 0x00000008 } PHONE_BUTTON_STATE; // // what the button is used for // typedef enum PHONE_BUTTON_MODE { PBM_DUMMY, PBM_CALL, PBM_FEATURE, PBM_KEYPAD, PBM_LOCAL, PBM_DISPLAY } PHONE_BUTTON_MODE; // // the function of the button - when the button is pressed, // what is expected to happen. // typedef enum PHONE_BUTTON_FUNCTION { PBF_UNKNOWN, PBF_CONFERENCE, PBF_TRANSFER, PBF_DROP, PBF_HOLD, PBF_RECALL, PBF_DISCONNECT, PBF_CONNECT, PBF_MSGWAITON, PBF_MSGWAITOFF, PBF_SELECTRING, PBF_ABBREVDIAL, PBF_FORWARD, PBF_PICKUP, PBF_RINGAGAIN, PBF_PARK, PBF_REJECT, PBF_REDIRECT, PBF_MUTE, PBF_VOLUMEUP, PBF_VOLUMEDOWN, PBF_SPEAKERON, PBF_SPEAKEROFF, PBF_FLASH, PBF_DATAON, PBF_DATAOFF, PBF_DONOTDISTURB, PBF_INTERCOM, PBF_BRIDGEDAPP, PBF_BUSY, PBF_CALLAPP, PBF_DATETIME, PBF_DIRECTORY, PBF_COVER, PBF_CALLID, PBF_LASTNUM, PBF_NIGHTSRV, PBF_SENDCALLS, PBF_MSGINDICATOR, PBF_REPDIAL, PBF_SETREPDIAL, PBF_SYSTEMSPEED, PBF_STATIONSPEED, PBF_CAMPON, PBF_SAVEREPEAT, PBF_QUEUECALL, PBF_NONE, PBF_SEND } PHONE_BUTTON_FUNCTION; // // Used by ITAutomatedPhoneControl // typedef enum PHONE_TONE { PT_KEYPADZERO, PT_KEYPADONE, PT_KEYPADTWO, PT_KEYPADTHREE, PT_KEYPADFOUR, PT_KEYPADFIVE, PT_KEYPADSIX, PT_KEYPADSEVEN, PT_KEYPADEIGHT, PT_KEYPADNINE, PT_KEYPADSTAR, PT_KEYPADPOUND, PT_KEYPADA, PT_KEYPADB, PT_KEYPADC, PT_KEYPADD, PT_NORMALDIALTONE, PT_EXTERNALDIALTONE, PT_BUSY, PT_RINGBACK, PT_ERRORTONE, PT_SILENCE } PHONE_TONE; // // events related to phones // typedef enum PHONE_EVENT { PE_DISPLAY, PE_LAMPMODE, PE_RINGMODE, PE_RINGVOLUME, PE_HOOKSWITCH, PE_CAPSCHANGE, PE_BUTTON, PE_CLOSE, PE_NUMBERGATHERED, PE_DIALING, PE_ANSWER, PE_DISCONNECT, PE_LASTITEM = PE_DISCONNECT } PHONE_EVENT; // Dispach ID mapping constants const DISPID INTERFACEMASK = 0x00FF0000; const DISPID DISPIDMASK = 0x0000FFFF; // Tapi Object Interfaces const DISPID IDISPTAPI = 0x00010000; const DISPID IDISPTAPICALLCENTER = 0x00020000; // Call Object Interfaces const DISPID IDISPCALLINFO = 0x00010000; const DISPID IDISPBASICCALLCONTROL = 0x00020000; const DISPID IDISPLEGACYCALLMEDIACONTROL = 0x00030000; const DISPID IDISPAGGREGATEDMSPCALLOBJ = 0x00040000; // Address Object Interfaces const DISPID IDISPADDRESS = 0x00010000; const DISPID IDISPADDRESSCAPABILITIES = 0x00020000; const DISPID IDISPMEDIASUPPORT = 0x00030000; const DISPID IDISPADDRESSTRANSLATION = 0x00040000; const DISPID IDISPLEGACYADDRESSMEDIACONTROL = 0x00050000; const DISPID IDISPAGGREGATEDMSPADDRESSOBJ = 0x00060000; // Phone Object Interfaces const DISPID IDISPPHONE = 0x00010000; const DISPID IDISPAPC = 0x00020000; // file terminal object interfaces const DISPID IDISPMULTITRACK = 0x00010000; const DISPID IDISPMEDIACONTROL = 0x00020000; const DISPID IDISPMEDIARECORD = 0x00030000; const DISPID IDISPMEDIAPLAYBACK = 0x00040000; // file terminal track interfaces const DISPID IDISPFILETRACK = 0x00010000; // forward definitions interface IEnumAddress; interface IEnumPhone; interface IEnumCall; interface IEnumTerminalClass; interface IEnumTerminal; interface IEnumLocation; interface IEnumCallingCard; interface IEnumBstr; interface ITCollection; interface ITCollection2; interface ITTerminal; interface ITAMTerminal; interface ITTAPI; interface ITTAPI2; interface ITMediaSupport; interface ITTerminalSupport; interface ITTerminalSupport2; interface ITCallInfo; interface ITCallInfo2; interface ITCallHub; interface ITBasicCallControl; interface IEnumCallHub; interface ITForwardInformation; interface ITAddressTranslation; interface ITAddressTranslationInfo; interface ITLocationInfo; interface ITCallingCard; interface ITAddress; interface ITAddress2; interface ITPhone; interface ITStaticAudioTerminal; interface ITStream; interface ITStreamControl; interface ITStream; interface ITSubStreamControl; interface ITSubStream; interface IEnumStream; interface IEnumSubStream; interface ITTone; interface ITToneGeneration; interface ITToneDetection; interface ITScriptableAudioFormat; interface ITPluggableTerminalSuperclassInfo; interface ITPluggableTerminalClassInfo; interface IEnumPluggableTerminalClassInfo; interface IEnumPluggableSuperclassInfo; interface ITDetectTone; interface ITCustomTone; [ uuid( B1EFC382-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITTAPI interface"), pointer_default(unique), dual ] interface ITTAPI : IDispatch { [id(IDISPTAPI | 13), helpstring("Initialize")] HRESULT Initialize(); [id(IDISPTAPI | 14), helpstring("Shutdown")] HRESULT Shutdown(); [propget, id(IDISPTAPI | 1), helpstring("property Addresses")] HRESULT Addresses( [out, retval] VARIANT * pVariant ); [id(IDISPTAPI | 2), hidden, helpstring("method EnumerateAddresses")] HRESULT EnumerateAddresses( [out, retval] IEnumAddress ** ppEnumAddress ); [id(IDISPTAPI | 3), helpstring("method RegisterCallNotifications")] HRESULT RegisterCallNotifications( [in]ITAddress * pAddress, [in]VARIANT_BOOL fMonitor, [in]VARIANT_BOOL fOwner, [in]long lMediaTypes, [in]long lCallbackInstance, [out,retval]long * plRegister ); [id(IDISPTAPI | 4), helpstring("method UnregisterNotifications")] HRESULT UnregisterNotifications( [in] long lRegister ); [propget, id(IDISPTAPI | 5), helpstring("property CallHubs")] HRESULT CallHubs( [out, retval] VARIANT * pVariant ); [id(IDISPTAPI | 6), hidden, helpstring("method EnumerateCallHubs")] HRESULT EnumerateCallHubs( [out, retval] IEnumCallHub ** ppEnumCallHub ); [id(IDISPTAPI | 7), helpstring("method SetCallHubTracking")] HRESULT SetCallHubTracking( [in] VARIANT pAddresses, [in] VARIANT_BOOL bTracking ); [id(IDISPTAPI | 8), hidden] HRESULT EnumeratePrivateTAPIObjects( [out] IEnumUnknown ** ppEnumUnknown ); [propget, id(IDISPTAPI | 9), helpstring("property PrivateTAPIObjects")] HRESULT PrivateTAPIObjects( [out, retval] VARIANT * pVariant ); [id(IDISPTAPI | 10), helpstring("method RegisterRequestRecipient")] HRESULT RegisterRequestRecipient( [in] long lRegistrationInstance, [in] long lRequestMode, [in] VARIANT_BOOL fEnable ); [id(IDISPTAPI | 11), helpstring("method SetAssistedTelephonyPriority")] HRESULT SetAssistedTelephonyPriority( [in] BSTR pAppFilename, [in] VARIANT_BOOL fPriority ); [id(IDISPTAPI | 12), helpstring("method SetApplicationPriority")] HRESULT SetApplicationPriority( [in] BSTR pAppFilename, [in] long lMediaType, [in] VARIANT_BOOL fPriority ); [propput, id(IDISPTAPI | 15), helpstring("property EventFilter")] HRESULT EventFilter( [in] long lFilterMask ); [propget, id(IDISPTAPI | 15), helpstring("property EventFilter")] HRESULT EventFilter( [out, retval] long * plFilterMask ); } [ uuid( 54FBDC8C-D90F-4dad-9695-B373097F094B ), helpstring("TAPI 3.1 ITTAPI2 interface"), dual ] interface ITTAPI2 : ITTAPI { // // get the phones that can be used on this address // returns a collection/enumeration for scripting and c/c++ // [propget, id(IDISPTAPI | 16), helpstring("property Phones")] HRESULT Phones( [out, retval] VARIANT * pPhones ); [id(IDISPTAPI | 17), hidden, helpstring("method EnumeratePhones")] HRESULT EnumeratePhones( [out, retval] IEnumPhone ** ppEnumPhone ); [id(IDISPTAPI | 18), helpstring("method CreateEmptyCollectionObject")] HRESULT CreateEmptyCollectionObject( [out, retval] ITCollection2 ** ppCollection ); } [ uuid( B1EFC384-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITMediaSupport interface"), dual ] interface ITMediaSupport : IDispatch { [propget, id(IDISPMEDIASUPPORT | 1), helpstring("property MediaTypes")] HRESULT MediaTypes( [out, retval] long * plMediaTypes ); [id(IDISPMEDIASUPPORT | 2), helpstring("method QueryMediaType")] HRESULT QueryMediaType( [in] long lMediaType, [out, retval] VARIANT_BOOL * pfSupport ); } [ uuid( 41757F4A-CF09-4b34-BC96-0A79D2390076 ), helpstring("TAPI 3.1 ITPluggableTerminalClassInfo interface"), dual ] interface ITPluggableTerminalClassInfo : IDispatch { // // Terminal Friendly Name // [id(1), propget, helpstring("method get_Name")] HRESULT Name( [out, retval] BSTR* pName ); // // Company name // [id(2), propget, helpstring("method get_Company")] HRESULT Company( [out, retval] BSTR* pCompany ); // // Terminal Version // [id(3), propget, helpstring("method get_Version")] HRESULT Version( [out, retval] BSTR* pVersion ); // // TerminalClass // [id(4), propget, helpstring("method get_TerminalClass")] HRESULT TerminalClass( [out, retval] BSTR* pTerminalClass ); // // This CLSID is used to CoCreate the terminal // [id(5), propget, helpstring("method get_CLSID")] HRESULT CLSID( [out, retval] BSTR* pCLSID ); // // Direction supported by terminal // [id(6), propget, helpstring("method get_Direction")] HRESULT Direction( [out, retval] TERMINAL_DIRECTION* pDirection ); // // Media Types supported by terminal // [id(7), propget, helpstring("method get_MediaTypes")] HRESULT MediaTypes( [out, retval] long* pMediaTypes ); } [ uuid( 6D54E42C-4625-4359-A6F7-631999107E05 ), helpstring("TAPI 3.1 ITPluggableTerminalSuperclassInfo interface"), dual ] interface ITPluggableTerminalSuperclassInfo : IDispatch { [id(1), propget, helpstring("method get_Name")] HRESULT Name( [out, retval] BSTR* pName ); [id(2), propget, helpstring("method get_CLSID")] HRESULT CLSID( [out, retval] BSTR* pCLSID ); } [ uuid( B1EFC385-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITTerminalSupport interface"), dual ] interface ITTerminalSupport : IDispatch { [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 1), helpstring("property StaticTerminals")] HRESULT StaticTerminals( [out, retval] VARIANT * pVariant ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 2), hidden, helpstring("method EnumerateStaticTerminals")] HRESULT EnumerateStaticTerminals( [out, retval] IEnumTerminal ** ppTerminalEnumerator ); [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 3), helpstring("property DynamicTerminalClasses")] HRESULT DynamicTerminalClasses( [out, retval] VARIANT * pVariant ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 4), hidden, helpstring("method EnumerateDynamicTerminalClasses")] HRESULT EnumerateDynamicTerminalClasses( [out, retval] IEnumTerminalClass ** ppTerminalClassEnumerator ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 5), helpstring("method CreateTerminal")] HRESULT CreateTerminal( [in] BSTR pTerminalClass, [in] long lMediaType, [in] TERMINAL_DIRECTION Direction, [out, retval] ITTerminal ** ppTerminal ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 6), helpstring("method GetDefaultStaticTerminal")] HRESULT GetDefaultStaticTerminal( [in] long lMediaType, [in] TERMINAL_DIRECTION Direction, [out, retval] ITTerminal ** ppTerminal ); } [ uuid( F3EB39BC-1B1F-4e99-A0C0-56305C4DD591 ), helpstring("TAPI 3.1 ITTerminalSupport2 interface"), dual ] interface ITTerminalSupport2 : ITTerminalSupport { [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 7), helpstring("property PluggableSuperclasses")] HRESULT PluggableSuperclasses( [out, retval] VARIANT * pVariant ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 8), hidden, helpstring("method EnumeratePluggableSuperclasses")] HRESULT EnumeratePluggableSuperclasses( [out, retval] IEnumPluggableSuperclassInfo ** ppSuperclassEnumerator ); [propget, id(IDISPAGGREGATEDMSPADDRESSOBJ | 9), helpstring("property PluggableTerminalClasses")] HRESULT PluggableTerminalClasses( [in] BSTR bstrTerminalSuperclass, [in] long lMediaType, [out, retval] VARIANT * pVariant ); [id(IDISPAGGREGATEDMSPADDRESSOBJ | 10), hidden, helpstring("method EnumeratePluggableTerminalClasses")] HRESULT EnumeratePluggableTerminalClasses( [in] CLSID iidTerminalSuperclass, [in] long lMediaType, [out, retval] IEnumPluggableTerminalClassInfo ** ppClassEnumerator ); } [ uuid( B1EFC386-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITAddress interface"), dual ] interface ITAddress : IDispatch { [propget, id(IDISPADDRESS | 1), helpstring("property State")] HRESULT State( [out, retval] ADDRESS_STATE * pAddressState ); [propget, id(IDISPADDRESS | 2), helpstring("property AddressName")] HRESULT AddressName( [out, retval] BSTR * ppName ); [propget, id(IDISPADDRESS | 3), helpstring("property ServiceProviderName")] HRESULT ServiceProviderName( [out, retval] BSTR * ppName ); [propget, id(IDISPADDRESS | 4), helpstring("property TAPIObject")] HRESULT TAPIObject( [out, retval] ITTAPI ** ppTapiObject ); [id(IDISPADDRESS | 5), helpstring("method CreateCall")] HRESULT CreateCall( [in] BSTR pDestAddress, [in] long lAddressType, [in] long lMediaTypes, [out, retval] ITBasicCallControl ** ppCall ); [propget, id(IDISPADDRESS | 6), helpstring("property Calls")] HRESULT Calls( [out, retval] VARIANT * pVariant ); [id(IDISPADDRESS | 7), hidden, helpstring("method EnumerateCalls")] HRESULT EnumerateCalls( [out, retval] IEnumCall ** ppCallEnum ); [propget, id(IDISPADDRESS | 8), helpstring("property DialableAddress")] HRESULT DialableAddress( [out,retval] BSTR * pDialableAddress ); [id(IDISPADDRESS | 10), helpstring("method CreateForwardInfoObject")] HRESULT CreateForwardInfoObject( [out, retval] ITForwardInformation ** ppForwardInfo ); [id(IDISPADDRESS | 11), helpstring("method Forward")] HRESULT Forward( [in] ITForwardInformation * pForwardInfo, [in] ITBasicCallControl * pCall ); [propget, id(IDISPADDRESS | 12), helpstring("method Forward")] HRESULT CurrentForwardInfo( [out, retval] ITForwardInformation ** ppForwardInfo ); [propput, id(IDISPADDRESS | 14), helpstring("property MessageWaiting")] HRESULT MessageWaiting( [in] VARIANT_BOOL fMessageWaiting ); [propget, id(IDISPADDRESS | 14), helpstring("property MessageWaiting")] HRESULT MessageWaiting( [out, retval] VARIANT_BOOL * pfMessageWaiting ); [propput, id(IDISPADDRESS | 15), helpstring("property DoNotDisturb")] HRESULT DoNotDisturb( [in] VARIANT_BOOL fDoNotDisturb ); [propget, id(IDISPADDRESS | 15), helpstring("property DoNotDisturb")] HRESULT DoNotDisturb( [out, retval] VARIANT_BOOL * pfDoNotDisturb ); } /////////////////////////////////////////////////////// // ITAddress2 /////////////////////////////////////////////////////// [ uuid( B0AE5D9B-BE51-46c9-B0F7-DFA8A22A8BC4 ), helpstring("TAPI 3.1 ITAddress2 interface"), dual ] interface ITAddress2 : ITAddress { // // get the phones that can be used on this address // returns a collection/enumeration for scripting and c/c++ // [propget, id(IDISPADDRESS | 16), helpstring("property Phones")] HRESULT Phones( [out, retval] VARIANT * pPhones ); [id(IDISPADDRESS | 17), hidden, helpstring("method EnumeratePhones")] HRESULT EnumeratePhones( [out, retval] IEnumPhone ** ppEnumPhone ); [id(IDISPADDRESS | 18), helpstring("method GetPhoneFromTerminal")] HRESULT GetPhoneFromTerminal( [in] ITTerminal * pTerminal, [out, retval] ITPhone ** ppPhone ); [propget, id(IDISPADDRESS | 20), helpstring("property PreferredPhones")] HRESULT PreferredPhones( [out, retval] VARIANT * pPhones ); [id(IDISPADDRESS | 21), hidden, helpstring("method EnumeratePreferredPhones")] HRESULT EnumeratePreferredPhones( [out, retval] IEnumPhone ** ppEnumPhone ); // // Filtering events // [propget, id(IDISPADDRESS | 19), helpstring("method EventFilter")] HRESULT EventFilter( [in] TAPI_EVENT TapiEvent, [in] long lSubEvent, [out,retval] VARIANT_BOOL* pEnable ); [propput, id(IDISPADDRESS | 19), helpstring("method EventFilter")] HRESULT EventFilter( [in] TAPI_EVENT TapiEvent, [in] long lSubEvent, [in] VARIANT_BOOL bEnable ); // // device specific methods // [id(IDISPADDRESS | 22), hidden, helpstring("method DeviceSpecific")] HRESULT DeviceSpecific( [in] ITCallInfo *pCall, [in] BYTE *pParams, [in] DWORD dwSize ); [id(IDISPADDRESS | 23), helpstring("method DeviceSpecificVariant")] HRESULT DeviceSpecificVariant( [in] ITCallInfo *pCall, [in] VARIANT varDevSpecificByteArray ); [id(IDISPADDRESS | 24), helpstring("method NegotiateExtVersion")] HRESULT NegotiateExtVersion ( [in] long lLowVersion, [in] long lHighVersion, [out, retval] long *plExtVersion ); } [ uuid( 8DF232F5-821B-11d1-BB5C-00C04FB6809F ), helpstring("TAPI 3.0 ITAddressCapabilities interface"), dual ] interface ITAddressCapabilities : IDispatch { [propget, id(IDISPADDRESSCAPABILITIES | 1), helpstring("property AddressCapability")] HRESULT AddressCapability( [in] ADDRESS_CAPABILITY AddressCap, [out, retval] long * plCapability ); [propget, id(IDISPADDRESSCAPABILITIES | 2), helpstring("property AddressCapabilityString")] HRESULT AddressCapabilityString( [in] ADDRESS_CAPABILITY_STRING AddressCapString, [out, retval] BSTR * ppCapabilityString ); [propget, id(IDISPADDRESSCAPABILITIES | 3), helpstring("property CallTreatments")] HRESULT CallTreatments( [out, retval] VARIANT * pVariant ); [id(IDISPADDRESSCAPABILITIES | 4), hidden] HRESULT EnumerateCallTreatments( [out, retval] IEnumBstr ** ppEnumCallTreatment ); [propget, id(IDISPADDRESSCAPABILITIES | 5), helpstring("property CompletionMessages")] HRESULT CompletionMessages( [out, retval] VARIANT * pVariant ); [id(IDISPADDRESSCAPABILITIES | 6), hidden] HRESULT EnumerateCompletionMessages( [out, retval] IEnumBstr ** ppEnumCompletionMessage ); [propget, id(IDISPADDRESSCAPABILITIES | 7), helpstring("property DeviceClasses")] HRESULT DeviceClasses( [out, retval] VARIANT * pVariant ); [id(IDISPADDRESSCAPABILITIES | 8), hidden] HRESULT EnumerateDeviceClasses( [out, retval] IEnumBstr ** ppEnumDeviceClass ); } /////////////////////////////////////////////////////// // ITPhone /////////////////////////////////////////////////////// [ uuid( 09D48DB4-10CC-4388-9DE7-A8465618975A ), helpstring("TAPI 3.1 ITPhone interface"), dual ] interface ITPhone : IDispatch { // // opens the phone devices // [id(IDISPPHONE | 1), helpstring("method Open")] HRESULT Open( [in] PHONE_PRIVILEGE Privilege ); // // closes the phone // [id(IDISPPHONE | 2), helpstring("method Close")] HRESULT Close(); // // returns a collection/enumeration of addresses that the phone // can be used on // [propget, id(IDISPPHONE | 3), helpstring("property Addresses")] HRESULT Addresses( [out, retval] VARIANT * pAddresses ); [id(IDISPPHONE | 4), hidden, helpstring("method EnumerateAddresses")] HRESULT EnumerateAddresses( [out, retval] IEnumAddress ** ppEnumAddress ); // // gets a DWORD (long) capability of the phone, based on the PHONECAPS_LONG // passed in. // [propget, id(IDISPPHONE | 5), helpstring("property PhoneCapsLong")] HRESULT PhoneCapsLong( [in] PHONECAPS_LONG pclCap, [out, retval] long * plCapability ); // // gets a string capability/information about the phone, based on the PHONECAPS_STRING // passed in. // [propget, id(IDISPPHONE | 6), helpstring("property PhoneCapsString")] HRESULT PhoneCapsString( [in] PHONECAPS_STRING pcsCap, [out, retval] BSTR * ppCapability ); // // gets a collection/enumerations of terminals that are the terminals that // are associated with the phone. // [propget, id(IDISPPHONE | 7), helpstring("property Terminals")] HRESULT Terminals( [in] ITAddress * pAddress, [out, retval] VARIANT * pTerminals ); [id(IDISPPHONE | 8), hidden, helpstring("method EnumerateTerminals")] HRESULT EnumerateTerminals( [in] ITAddress * pAddress, [out, retval] IEnumTerminal ** ppEnumTerminal ); // // get the button mode // [propget, id(IDISPPHONE | 9), helpstring("property ButtonMode")] HRESULT ButtonMode( [in] long lButtonID, [out, retval] PHONE_BUTTON_MODE * pButtonMode ); // // put the button mode // [propput, id(IDISPPHONE | 9), helpstring("property ButtonMode")] HRESULT ButtonMode( [in] long lButtonID, [in] PHONE_BUTTON_MODE ButtonMode ); // // get the button function // [propget, id(IDISPPHONE | 10), helpstring("property ButtonFunction")] HRESULT ButtonFunction( [in] long lButtonID, [out, retval] PHONE_BUTTON_FUNCTION * pButtonFunction ); // // put the button function // [propput, id(IDISPPHONE | 10), helpstring("property ButtonFunction")] HRESULT ButtonFunction( [in] long lButtonID, [in] PHONE_BUTTON_FUNCTION ButtonFunction ); // // get the button text // [propget, id(IDISPPHONE | 11), helpstring("property ButtonText")] HRESULT ButtonText( [in] long lButtonID, [out, retval] BSTR * ppButtonText ); // // set the button text // [propput, id(IDISPPHONE | 11), helpstring("property ButtonText")] HRESULT ButtonText( [in] long lButtonID, [in] BSTR bstrButtonText ); // // get the button state // [propget, id(IDISPPHONE | 12), helpstring("property ButtonState")] HRESULT ButtonState( [in] long lButtonID, [out, retval] PHONE_BUTTON_STATE * pButtonState ); // // set the current hookswitch state // [propget, id(IDISPPHONE | 13), helpstring("property HookSwitchState")] HRESULT HookSwitchState( [in] PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice, [out, retval] PHONE_HOOK_SWITCH_STATE * pHookSwitchState ); // // set the current hookswitch state // [propput, id(IDISPPHONE | 13), helpstring("property HookSwitchState")] HRESULT HookSwitchState( [in] PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice, [in] PHONE_HOOK_SWITCH_STATE HookSwitchState ); // // set the ring mode for the phone // [propput, id(IDISPPHONE | 14), helpstring("property RingMode")] HRESULT RingMode( [in] long lRingMode ); // // get the ring mode for the phone // [propget, id(IDISPPHONE | 14), helpstring("property RingMode")] HRESULT RingMode( [out, retval] long * plRingMode ); // // set the ring volume for the phone // [propput, id(IDISPPHONE | 15), helpstring("property RingVolume")] HRESULT RingVolume( [in] long lRingVolume ); // // get the ring volume for the phone // [propget, id(IDISPPHONE | 15), helpstring("property RingVolume")] HRESULT RingVolume( [out, retval] long * plRingVolume ); // // get the privilege for the phone // [propget, id(IDISPPHONE | 16), helpstring("property Privilege")] HRESULT Privilege( [out, retval] PHONE_PRIVILEGE * pPrivilege ); [id(IDISPPHONE | 17), hidden, helpstring("method GetPhoneDevCapsBuffer")] HRESULT GetPhoneCapsBuffer( [in] PHONECAPS_BUFFER pcbCaps, [out] DWORD *pdwSize, [out] BYTE **ppPhoneCapsBuffer ); [propget, id(IDISPPHONE | 18), helpstring("property PhoneCapsBuffer")] HRESULT PhoneCapsBuffer( [in] PHONECAPS_BUFFER pcbCaps, [out, retval] VARIANT *pVarBuffer ); [propget, id(IDISPPHONE | 19), helpstring("property LampMode")] HRESULT LampMode( [in] long lLampID, [out, retval] PHONE_LAMP_MODE * pLampMode ); [propput, id(IDISPPHONE | 19), helpstring("property LampMode")] HRESULT LampMode( [in] long lLampID, [in] PHONE_LAMP_MODE LampMode ); [propget, id(IDISPPHONE | 20), helpstring("property Display")] HRESULT Display( [out, retval] BSTR *pbstrDisplay ); [id(IDISPPHONE | 21), helpstring("method SetDisplay")] HRESULT SetDisplay( [in] long lRow, [in] long lColumn, [in] BSTR bstrDisplay ); // // returns a collection/enumeration of addresses that the phone // is preferred on // [propget, id(IDISPPHONE | 22), helpstring("property PreferredAddresses")] HRESULT PreferredAddresses( [out, retval] VARIANT * pAddresses ); [id(IDISPPHONE | 23), hidden, helpstring("method EnumeratePreferredAddresses")] HRESULT EnumeratePreferredAddresses( [out, retval] IEnumAddress ** ppEnumAddress ); // // device specific methods // [id(IDISPADDRESS | 24), hidden, helpstring("method DeviceSpecific")] HRESULT DeviceSpecific( [in] BYTE *pParams, [in] DWORD dwSize ); [id(IDISPADDRESS | 25), helpstring("method DeviceSpecificVariant")] HRESULT DeviceSpecificVariant( [in] VARIANT varDevSpecificByteArray ); [id(IDISPADDRESS | 26), helpstring("method NegotiateExtVersion")] HRESULT NegotiateExtVersion( [in] long lLowVersion, [in] long lHighVersion, [out, retval] long *plExtVersion ); } /////////////////////////////////////////////////////// // ITAutomatedPhoneControl /////////////////////////////////////////////////////// [ uuid( 1EE1AF0E-6159-4a61-B79B-6A4BA3FC9DFC ), helpstring("TAPI 3.1 ITAutomatedPhoneControl interface"), dual ] interface ITAutomatedPhoneControl : IDispatch { [id(IDISPAPC | 1), helpstring("method StartTone")] HRESULT StartTone( [in] PHONE_TONE Tone, [in] long lDuration ); [id(IDISPAPC | 2), helpstring("method StopTone")] HRESULT StopTone(); [propget, id(IDISPAPC | 3), helpstring("property Tone")] HRESULT Tone( [out, retval] PHONE_TONE * pTone ); [id(IDISPAPC | 4), helpstring("method StartRinger")] HRESULT StartRinger( [in] long lRingMode, [in] long lDuration ); [id(IDISPAPC | 5), helpstring("method StopRinger")] HRESULT StopRinger(); [propget, id(IDISPAPC | 6), helpstring("property Ringer")] HRESULT Ringer( [out, retval] VARIANT_BOOL * pfRinging ); [propput, id(IDISPAPC | 7), helpstring("property PhoneHandlingEnabled")] HRESULT PhoneHandlingEnabled( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 7), helpstring("property PhoneHandlingEnabled")] HRESULT PhoneHandlingEnabled( [out, retval] VARIANT_BOOL * pfEnabled ); [propput, id(IDISPAPC | 8), helpstring("property AutoEndOfNumberTimeout")] HRESULT AutoEndOfNumberTimeout( [in] long lTimeout ); [propget, id(IDISPAPC | 8), helpstring("property AutoEndOfNumberTimeout")] HRESULT AutoEndOfNumberTimeout( [out, retval] long * plTimeout ); [propput, id(IDISPAPC | 9), helpstring("property AutoDialtone")] HRESULT AutoDialtone( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 9), helpstring("property AutoDialtone")] HRESULT AutoDialtone( [out, retval] VARIANT_BOOL * pfEnabled ); [propput, id(IDISPAPC | 10), helpstring("property AutoStopTonesOnOnHook")] HRESULT AutoStopTonesOnOnHook( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 10), helpstring("property AutoStopTonesOnOnHook")] HRESULT AutoStopTonesOnOnHook( [out, retval] VARIANT_BOOL * pfEnabled ); [propput, id(IDISPAPC | 11), helpstring("property AutoStopRingOnOffHook")] HRESULT AutoStopRingOnOffHook( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 11), helpstring("property AutoStopRingOnOffHook")] HRESULT AutoStopRingOnOffHook( [out, retval] VARIANT_BOOL * pfEnabled ); [propput, id(IDISPAPC | 12), helpstring("property AutoKeypadTones")] HRESULT AutoKeypadTones( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 12), helpstring("property AutoKeypadTones")] HRESULT AutoKeypadTones ( [out, retval] VARIANT_BOOL * pfEnabled ); [propput, id(IDISPAPC | 13), helpstring("property AutoKeypadTonesMinimumDuration")] HRESULT AutoKeypadTonesMinimumDuration( [in] long lDuration ); [propget, id(IDISPAPC | 13), helpstring("property AutoKeypadTonesMinimumDuration")] HRESULT AutoKeypadTonesMinimumDuration( [out, retval] long * plDuration ); [propput, id(IDISPAPC | 14), helpstring("property AutoVolumeControl")] HRESULT AutoVolumeControl( [in] VARIANT_BOOL fEnabled ); [propget, id(IDISPAPC | 14), helpstring("property AutoVolumeControl")] HRESULT AutoVolumeControl( [out, retval] VARIANT_BOOL * fEnabled ); [propput, id(IDISPAPC | 15), helpstring("property AutoVolumeControlStep")] HRESULT AutoVolumeControlStep( [in] long lStepSize ); [propget, id(IDISPAPC | 15), helpstring("property AutoVolumeControlStep")] HRESULT AutoVolumeControlStep( [out, retval] long * plStepSize ); [propput, id(IDISPAPC | 16), helpstring("property AutoVolumeControlRepeatDelay")] HRESULT AutoVolumeControlRepeatDelay( [in] long lDelay ); [propget, id(IDISPAPC | 16), helpstring("property AutoVolumeControlRepeatDelay")] HRESULT AutoVolumeControlRepeatDelay( [out, retval] long * plDelay ); [propput, id(IDISPAPC | 17), helpstring("property AutoVolumeControlRepeatPeriod")] HRESULT AutoVolumeControlRepeatPeriod( [in] long lPeriod ); [propget, id(IDISPAPC | 17), helpstring("property AutoVolumeControlRepeatPeriod")] HRESULT AutoVolumeControlRepeatPeriod( [out, retval] long * plPeriod ); [id(IDISPAPC | 18), helpstring("method SelectCall")] HRESULT SelectCall( [in] ITCallInfo * pCall, [in] VARIANT_BOOL fSelectDefaultTerminals ); [id(IDISPAPC | 19), helpstring("method UnselectCall")] HRESULT UnselectCall( [in] ITCallInfo * pCall ); [id(IDISPAPC | 20), hidden, helpstring("method EnumerateSelectedCalls")] HRESULT EnumerateSelectedCalls( [out, retval] IEnumCall ** ppCallEnum ); [propget, id(IDISPAPC | 21), helpstring("property SelectedCalls")] HRESULT SelectedCalls( [out, retval] VARIANT * pVariant ); } [ uuid( B1EFC389-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITBasicCallControl interface"), dual ] interface ITBasicCallControl : IDispatch { [id(IDISPBASICCALLCONTROL | 3), helpstring("method Connect")] HRESULT Connect( [in] VARIANT_BOOL fSync ); [id(IDISPBASICCALLCONTROL | 4), helpstring("method Answer")] HRESULT Answer(); [id(IDISPBASICCALLCONTROL | 5), helpstring("method Disconnect")] HRESULT Disconnect( [in] DISCONNECT_CODE code ); [id(IDISPBASICCALLCONTROL | 6), helpstring("method Hold")] HRESULT Hold( [in] VARIANT_BOOL fHold ); [id(IDISPBASICCALLCONTROL | 7), helpstring("method HandoffDirect")] HRESULT HandoffDirect( [in] BSTR pApplicationName ); [id(IDISPBASICCALLCONTROL | 8), helpstring("method HandoffIndirect")] HRESULT HandoffIndirect( [in] long lMediaType ); [id(IDISPBASICCALLCONTROL | 9), helpstring("method Conference")] HRESULT Conference( [in] ITBasicCallControl * pCall, [in] VARIANT_BOOL fSync ); [id(IDISPBASICCALLCONTROL | 10), helpstring("method Transfer")] HRESULT Transfer( [in] ITBasicCallControl * pCall, [in] VARIANT_BOOL fSync ); [id(IDISPBASICCALLCONTROL | 11), helpstring("method BlindTransfer")] HRESULT BlindTransfer( [in] BSTR pDestAddress ); [id(IDISPBASICCALLCONTROL | 12), helpstring("method SwapHold")] HRESULT SwapHold( [in] ITBasicCallControl * pCall ); [id(IDISPBASICCALLCONTROL | 13), helpstring("method ParkDirect")] HRESULT ParkDirect( [in] BSTR pParkAddress ); [id(IDISPBASICCALLCONTROL | 14), helpstring("method ParkIndirect")] HRESULT ParkIndirect( [out, retval] BSTR * ppNonDirAddress ); [id(IDISPBASICCALLCONTROL | 15), helpstring("method Unpark")] HRESULT Unpark(); [id(IDISPBASICCALLCONTROL | 16), helpstring("method SetQOS")] HRESULT SetQOS( [in] long lMediaType, [in] QOS_SERVICE_LEVEL ServiceLevel ); [id(IDISPBASICCALLCONTROL | 19), helpstring("method Pickup")] HRESULT Pickup( [in] BSTR pGroupID ); [id(IDISPBASICCALLCONTROL | 20), helpstring("method Dial")] HRESULT Dial( [in] BSTR pDestAddress ); [id(IDISPBASICCALLCONTROL | 21), helpstring("method Finish")] HRESULT Finish( [in] FINISH_MODE finishMode ); [id(IDISPBASICCALLCONTROL | 22), helpstring("method RemoveFromConference")] HRESULT RemoveFromConference(); } [ uuid( 350F85D1-1227-11D3-83D4-00C04FB6809F ), helpstring("TAPI 3.0 ITCallInfo interface"), dual ] interface ITCallInfo : IDispatch { [propget, id(IDISPCALLINFO | 1), helpstring("property Address")] HRESULT Address( [out, retval] ITAddress ** ppAddress ); [propget, id(IDISPCALLINFO | 2), helpstring("property CallState")] HRESULT CallState( [out, retval] CALL_STATE * pCallState ); [propget, id(IDISPCALLINFO | 3), helpstring("property Privilege")] HRESULT Privilege( [out, retval] CALL_PRIVILEGE * pPrivilege ); [propget, id(IDISPCALLINFO | 4), helpstring("property CallHub")] HRESULT CallHub( [out,retval] ITCallHub ** ppCallHub ); [propget, id(IDISPCALLINFO | 5), helpstring("property CallInfoLong")] HRESULT CallInfoLong( [in] CALLINFO_LONG CallInfoLong, [out, retval] long * plCallInfoLongVal ); [propput, id(IDISPCALLINFO | 5), helpstring("property CallInfoLong")] HRESULT CallInfoLong( [in] CALLINFO_LONG CallInfoLong, [in] long lCallInfoLongVal ); [propget, id(IDISPCALLINFO | 6), helpstring("property CallInfoString")] HRESULT CallInfoString( [in] CALLINFO_STRING CallInfoString, [out, retval] BSTR * ppCallInfoString ); [propput, id(IDISPCALLINFO | 6), helpstring("property CallInfoString")] HRESULT CallInfoString( [in] CALLINFO_STRING CallInfoString, [in] BSTR pCallInfoString ); [propget, id(IDISPCALLINFO | 7), helpstring("property CallInfoBuffer")] HRESULT CallInfoBuffer( [in] CALLINFO_BUFFER CallInfoBuffer, [out, retval] VARIANT * ppCallInfoBuffer ); [propput, id(IDISPCALLINFO | 7), helpstring("property CallInfoBuffer")] HRESULT CallInfoBuffer( [in] CALLINFO_BUFFER CallInfoBuffer, [in] VARIANT pCallInfoBuffer ); [id(IDISPCALLINFO | 8), hidden] HRESULT GetCallInfoBuffer( [in] CALLINFO_BUFFER CallInfoBuffer, [out] DWORD * pdwSize, [out, size_is(,*pdwSize)] BYTE ** ppCallInfoBuffer ); [id(IDISPCALLINFO | 9), hidden] HRESULT SetCallInfoBuffer( [in] CALLINFO_BUFFER CallInfoBuffer, [in] DWORD dwSize, [in, size_is(dwSize)] BYTE * pCallInfoBuffer ); [id(IDISPCALLINFO | 10), helpstring("method ReleaseUserUserInfo")] HRESULT ReleaseUserUserInfo(); } [ uuid( 94D70CA6-7AB0-4daa-81CA-B8F8643FAEC1 ), helpstring("TAPI 3.1 ITCallInfo2 interface"), dual ] interface ITCallInfo2 : ITCallInfo { [propget, id(IDISPCALLINFO | 11), helpstring("method EventFilter")] HRESULT EventFilter( [in] TAPI_EVENT TapiEvent, [in] long lSubEvent, [out,retval] VARIANT_BOOL* pEnable ); [propput, id(IDISPCALLINFO | 11), helpstring("method EventFilter")] HRESULT EventFilter( [in] TAPI_EVENT TapiEvent, [in] long lSubEvent, [in] VARIANT_BOOL bEnable ); } // // Implemented by the MSP's Terminal objects. // [ uuid( B1EFC38A-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITTerminal interface"), dual ] interface ITTerminal : IDispatch { [propget, id(1), helpstring("property Name")] HRESULT Name( [out, retval] BSTR * ppName ); [propget, id(2), helpstring("property State")] HRESULT State( [out, retval] TERMINAL_STATE * pTerminalState ); [propget, id(3), helpstring("property TerminalType")] HRESULT TerminalType( [out, retval] TERMINAL_TYPE * pType ); // terminal class is actually a guid [propget, id(4), helpstring("property TerminalClass")] HRESULT TerminalClass( [out, retval] BSTR * ppTerminalClass ); [propget, id(5), helpstring("property MediaType")] HRESULT MediaType( [out, retval] long * plMediaType ); [propget, id(6), helpstring("property Direction")] HRESULT Direction( [out, retval] TERMINAL_DIRECTION *pDirection ); } // // implemented by multitrack terminals // [ object, uuid(FE040091-ADE8-4072-95C9-BF7DE8C54B44), dual, helpstring("ITMultiTrackTerminal Interface"), ] interface ITMultiTrackTerminal : IDispatch { [propget, id(IDISPMULTITRACK | 1), helpstring("property TrackTerminals")] HRESULT TrackTerminals( [out, retval] VARIANT *pVariant ); [id(IDISPMULTITRACK | 2), hidden, helpstring("method EnumerateTrackTerminals")] HRESULT EnumerateTrackTerminals( [out, retval] IEnumTerminal **ppEnumTerminal ); [id(IDISPMULTITRACK | 3), helpstring("method CreateTrackTerminal")] HRESULT CreateTrackTerminal( [in]long MediaType, [in]TERMINAL_DIRECTION TerminalDirection, [out,retval]ITTerminal **ppTerminal ); [propget, id(IDISPMULTITRACK | 4), helpstring("property MediaTypesInUse")] HRESULT MediaTypesInUse( [out, retval] long *plMediaTypesInUse ); [propget, id(IDISPMULTITRACK | 5), helpstring("property DirectionsInUse")] HRESULT DirectionsInUse( [out, retval] TERMINAL_DIRECTION *plDirectionsInUsed ); [id(IDISPMULTITRACK | 6), helpstring("method RemoveTrackTerminal")] HRESULT RemoveTrackTerminal( [in] ITTerminal *pTrackTerminalToRemove ); } // // this describes state of the terminal // typedef enum TERMINAL_MEDIA_STATE { TMS_IDLE, // Terminal is doing nothing. No transfer of data TMS_ACTIVE, // Transferring media stream <-> storage TMS_PAUSED, // Transfer temporarily suspended TMS_LASTITEM = TMS_PAUSED } TERMINAL_MEDIA_STATE; // // state transition causes // typedef enum FT_STATE_EVENT_CAUSE { FTEC_NORMAL, FTEC_END_OF_FILE, FTEC_READ_ERROR, FTEC_WRITE_ERROR } FT_STATE_EVENT_CAUSE; [ object, uuid(31CA6EA9-C08A-4bea-8811-8E9C1BA3EA3A), dual, helpstring("ITFileTrack Interface"), pointer_default(unique) ] interface ITFileTrack : IDispatch { [propget, id(IDISPFILETRACK | 1), hidden, helpstring("property Format")] HRESULT Format( [out, retval] AM_MEDIA_TYPE **ppmt ); [propput, id(IDISPFILETRACK | 1), hidden, helpstring("property Format")] HRESULT Format( [in] const AM_MEDIA_TYPE *pmt ); [propget, id(IDISPFILETRACK | 2), helpstring("property ControllingTerminal")] HRESULT ControllingTerminal( [out, retval] ITTerminal **ppControllingTerminal ); [propget, id(IDISPFILETRACK | 3), helpstring("property AudioFormatForScripting")] HRESULT AudioFormatForScripting( [out, retval] ITScriptableAudioFormat** ppAudioFormat ); [propput, id(IDISPFILETRACK | 3), helpstring("property AudioFormatForScripting")] HRESULT AudioFormatForScripting( [in] ITScriptableAudioFormat* pAudioFormat ); [propget, id(IDISPFILETRACK | 5), helpstring("property EmptyAudioFormatForScripting")] HRESULT EmptyAudioFormatForScripting( [out, retval] ITScriptableAudioFormat** ppAudioFormat ); }; [ object, uuid(627E8AE6-AE4C-4a69-BB63-2AD625404B77), dual, helpstring("ITMediaPlayback Interface"), pointer_default(unique) ] interface ITMediaPlayback : IDispatch { [propput, id(IDISPMEDIAPLAYBACK | 1), helpstring("property PlayList")] HRESULT PlayList( [in] VARIANTARG PlayListVariant ); [propget, id(IDISPMEDIAPLAYBACK | 1), helpstring("property PlayList")] HRESULT PlayList( [out, retval] VARIANTARG* pPlayListVariant ); }; [ object, uuid(F5DD4592-5476-4cc1-9D4D-FAD3EEFE7DB2), dual, helpstring("ITMediaRecord Interface"), pointer_default(unique) ] interface ITMediaRecord : IDispatch { [propput, id(IDISPMEDIARECORD | 1), helpstring("propery FileName")] HRESULT FileName ( [in] BSTR bstrFileName ); [propget, id(IDISPMEDIARECORD | 1), helpstring("property FileName")] HRESULT FileName( [out, retval] BSTR *pbstrFileName ); }; [ object, uuid(C445DDE8-5199-4bc7-9807-5FFB92E42E09), dual, helpstring("ITMediaControl Interface"), pointer_default(unique) ] interface ITMediaControl : IDispatch { [id(IDISPMEDIACONTROL | 1), helpstring("method Start")] HRESULT Start(); [id(IDISPMEDIACONTROL | 2), helpstring("method Stop")] HRESULT Stop(); [id(IDISPMEDIACONTROL | 3), helpstring("method Pause")] HRESULT Pause(); [propget, id(IDISPMEDIACONTROL | 4), helpstring("property MediaState")] HRESULT MediaState( [out, retval] TERMINAL_MEDIA_STATE *pTerminalMediaState ); }; [ uuid( B1EFC38D-9355-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 ITBasicAudioTerminal interface"), dual ] interface ITBasicAudioTerminal : IDispatch { [propput, id(1), helpstring("property Volume")] HRESULT Volume( [in] long lVolume ); [propget, id(1), helpstring("property Volume")] HRESULT Volume( [out, retval] long * plVolume ); [propput, id(2), helpstring("property Balance")] HRESULT Balance( [in] long lBalance ); [propget, id(2), helpstring("property Balance")] HRESULT Balance( [out, retval] long * plBalance ); } /////////////////////////////////////////////////////// // ITStaticAudioTerminal /////////////////////////////////////////////////////// [ uuid( A86B7871-D14C-48e6-922E-A8D15F984800 ), helpstring("TAPI 3.1 ITStaticAudioTerminal Interface"), dual ] interface ITStaticAudioTerminal : IDispatch { [propget, id(1), helpstring("property WaveId")] HRESULT WaveId( [out, retval] long * plWaveId ); } [ uuid( A3C1544E-5B92-11d1-8F4E-00C04FB6809F ), helpstring("TAPI 3.0 ITCallHub interface"), dual ] interface ITCallHub : IDispatch { [id(1), helpstring("method Clear")] HRESULT Clear(); [id(2), hidden, helpstring("method EnumerateCalls")] HRESULT EnumerateCalls( [out, retval] IEnumCall ** ppEnumCall ); [propget, id(3), helpstring("property Calls")] HRESULT Calls( [out, retval] VARIANT * pCalls ); [propget, id(4), helpstring("property NumCalls")] HRESULT NumCalls( [out, retval] long * plCalls ); [propget, id(5), helpstring("property State")] HRESULT State( [out, retval] CALLHUB_STATE * pState ); } [ uuid(AB493640-4C0B-11D2-A046-00C04FB6809F), helpstring("TAPI 3.0 ITLegacyAddressMediaControl Interface"), hidden, pointer_default(unique) ] interface ITLegacyAddressMediaControl : IUnknown { [id(IDISPLEGACYADDRESSMEDIACONTROL | 1), hidden] HRESULT GetID( [in] BSTR pDeviceClass, [out] DWORD * pdwSize, [out, size_is(,*pdwSize)] BYTE ** ppDeviceID ); [id(IDISPLEGACYADDRESSMEDIACONTROL | 2), hidden] HRESULT GetDevConfig( [in] BSTR pDeviceClass, [out] DWORD * pdwSize, [out, size_is(,*pdwSize)] BYTE ** ppDeviceConfig ); [id(IDISPLEGACYADDRESSMEDIACONTROL | 3), hidden] HRESULT SetDevConfig( [in] BSTR pDeviceClass, [in] DWORD dwSize, [in, size_is(dwSize)] BYTE * pDeviceConfig ); } [ uuid( 0e269cd0-10d4-4121-9c22-9c85d625650d ), helpstring("TAPI 3.0 ITPrivateEvent Interface"), dual ] interface ITPrivateEvent : IDispatch { [propget, id(1), helpstring("property Address")] HRESULT Address( [out, retval] ITAddress ** ppAddress ); [propget, id(2), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(3), helpstring("property CallHub")] HRESULT CallHub( [out, retval] ITCallHub ** ppCallHub ); [propget, id(4), helpstring("property EventCode")] HRESULT EventCode( [out, retval] long * plEventCode ); [propget, id(5), helpstring("property EventInterface")] HRESULT EventInterface( [out, retval] IDispatch ** pEventInterface ); } [ uuid(B0EE512B-A531-409e-9DD9-4099FE86C738), helpstring("TAPI 3.1 ITLegacyAddressMediaControl2 Interface"), hidden, pointer_default(unique) ] interface ITLegacyAddressMediaControl2 : ITLegacyAddressMediaControl { [id(IDISPLEGACYADDRESSMEDIACONTROL | 4), hidden] HRESULT ConfigDialog( [in] HWND hwndOwner, [in] BSTR pDeviceClass ); [id(IDISPLEGACYADDRESSMEDIACONTROL | 5), hidden] HRESULT ConfigDialogEdit( [in] HWND hwndOwner, [in] BSTR pDeviceClass, [in] DWORD dwSizeIn, [in, size_is(dwSizeIn)] BYTE * pDeviceConfigIn, [out] DWORD * pdwSizeOut, [out, size_is(,*pdwSizeOut)] BYTE ** ppDeviceConfigOut ); } [ uuid(d624582f-cc23-4436-b8a5-47c625c8045d), helpstring("TAPI 3.0 ITLegacyCallMediaControl Interface"), dual, pointer_default(unique) ] interface ITLegacyCallMediaControl : IDispatch { [id(IDISPLEGACYCALLMEDIACONTROL | 1), helpstring("method DetectDigits")] HRESULT DetectDigits( [in] TAPI_DIGITMODE DigitMode ); [id(IDISPLEGACYCALLMEDIACONTROL | 2), helpstring("method GenerateDigits")] HRESULT GenerateDigits( [in] BSTR pDigits, [in] TAPI_DIGITMODE DigitMode ); [id(IDISPLEGACYCALLMEDIACONTROL | 3), hidden] HRESULT GetID( [in] BSTR pDeviceClass, [out] DWORD * pdwSize, [out, size_is(,*pdwSize)] BYTE ** ppDeviceID ); [id(IDISPLEGACYCALLMEDIACONTROL | 4), helpstring("method SetMediaType")] HRESULT SetMediaType( [in] long lMediaType ); [id(IDISPLEGACYCALLMEDIACONTROL | 5), helpstring("method MonitorMedia")] HRESULT MonitorMedia( [in] long lMediaType ); } [ uuid(57CA332D-7BC2-44f1-A60C-936FE8D7CE73), helpstring("TAPI 3.1 ITLegacyCallMediaControl2 Interface"), dual ] interface ITLegacyCallMediaControl2 : ITLegacyCallMediaControl { [id(IDISPLEGACYCALLMEDIACONTROL | 6), helpstring("method GenerateDigits2")] HRESULT GenerateDigits2( [in] BSTR pDigits, [in] TAPI_DIGITMODE DigitMode, [in] long lDuration ); [id(IDISPLEGACYCALLMEDIACONTROL | 7), helpstring("method GatherDigits")] HRESULT GatherDigits( [in] TAPI_DIGITMODE DigitMode, [in] long lNumDigits, [in] BSTR pTerminationDigits, [in] long lFirstDigitTimeout, [in] long lInterDigitTimeout ); [id(IDISPLEGACYCALLMEDIACONTROL | 8), hidden, helpstring("method DetectTones")] HRESULT DetectTones( [in] TAPI_DETECTTONE * pToneList, [in] long lNumTones ); [id(IDISPLEGACYCALLMEDIACONTROL | 9), helpstring("method DetectTonesByCollection")] HRESULT DetectTonesByCollection( [in] ITCollection2 * pDetectToneCollection ); [id(IDISPLEGACYCALLMEDIACONTROL | 10), helpstring("method GenerateTone")] HRESULT GenerateTone( [in] TAPI_TONEMODE ToneMode, [in] long lDuration ); [id(IDISPLEGACYCALLMEDIACONTROL | 11), hidden, helpstring("method GenerateCustomTones")] HRESULT GenerateCustomTones( [in] TAPI_CUSTOMTONE * pToneList, [in] long lNumTones, [in] long lDuration ); [id(IDISPLEGACYCALLMEDIACONTROL | 12), helpstring("method GenerateCustomTonesByCollection")] HRESULT GenerateCustomTonesByCollection( [in] ITCollection2 * pCustomToneCollection, [in] long lDuration ); [id(IDISPLEGACYCALLMEDIACONTROL | 13), helpstring("method CreateDetectToneObject")] HRESULT CreateDetectToneObject( [out, retval] ITDetectTone ** ppDetectTone ); [id(IDISPLEGACYCALLMEDIACONTROL | 14), helpstring("method CreateCustomToneObject")] HRESULT CreateCustomToneObject( [out, retval] ITCustomTone ** ppCustomTone ); [id(IDISPLEGACYCALLMEDIACONTROL | 15), helpstring("method GetIDAsVariant")] HRESULT GetIDAsVariant( [in] BSTR bstrDeviceClass, [out, retval] VARIANT *pVarDeviceID ); } [ uuid( 961F79BD-3097-49df-A1D6-909B77E89CA0 ), helpstring("TAPI 3.1 ITDetectTone Interface"), dual ] interface ITDetectTone : IDispatch { [propget, id(1), helpstring("property AppSpecific")] HRESULT AppSpecific( [out, retval] long * plAppSpecific ); [propput, id(1), helpstring("property AppSpecific")] HRESULT AppSpecific( [in] long lAppSpecific ); [propget, id(2), helpstring("property Duration")] HRESULT Duration( [out, retval] long * plDuration ); [propput, id(2), helpstring("property Duration")] HRESULT Duration( [in] long lDuration ); [propget, id(3), helpstring("property Frequency")] HRESULT Frequency( [in] long Index, [out, retval] long * plFrequency ); [propput, id(3), helpstring("property Frequency")] HRESULT Frequency( [in] long Index, [in] long lFrequency ); } [ uuid( 357AD764-B3C6-4b2a-8FA5-0722827A9254 ), helpstring("TAPI 3.1 ITCustomTone Interface"), dual, pointer_default(unique) ] interface ITCustomTone : IDispatch { [propget, id(1), helpstring("property Frequency")] HRESULT Frequency( [out, retval] long * plFrequency ); [propput, id(1), helpstring("property Frequency")] HRESULT Frequency( [in] long lFrequency ); [propget, id(2), helpstring("property CadenceOn")] HRESULT CadenceOn( [out, retval] long * plCadenceOn ); [propput, id(2), helpstring("property CadenceOn")] HRESULT CadenceOn( [in] long CadenceOn ); [propget, id(3), helpstring("property CadenceOff")] HRESULT CadenceOff( [out, retval] long * plCadenceOff ); [propput, id(3), helpstring("property CadenceOff")] HRESULT CadenceOff( [in] long lCadenceOff ); [propget, id(4), helpstring("property Volume")] HRESULT Volume( [out, retval] long * plVolume ); [propput, id(4), helpstring("property Volume")] HRESULT Volume( [in] long lVolume ); } /////////////////////////////////////////////////////// // IEnumPhone /////////////////////////////////////////////////////// [ uuid( F15B7669-4780-4595-8C89-FB369C8CF7AA ), helpstring("TAPI 3.1 IEnumPhone Interface"), hidden, pointer_default(unique) ] interface IEnumPhone : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] ITPhone ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumPhone ** ppEnum ); } [ uuid( AE269CF4-935E-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 IEnumTerminal Interface"), hidden, pointer_default(unique) ] interface IEnumTerminal : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITTerminal ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumTerminal ** ppEnum ); } [ uuid( AE269CF5-935E-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 IEnumTerminalClass interface"), hidden, pointer_default(unique) ] interface IEnumTerminalClass : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] GUID * pElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumTerminalClass ** ppEnum ); } [ uuid( AE269CF6-935E-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 IEnumCall interface"), hidden, pointer_default(unique) ] interface IEnumCall : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITCallInfo ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumCall ** ppEnum ); } [ uuid( 1666FCA1-9363-11d0-835C-00AA003CCABD ), helpstring("TAPI 3.0 IEnumAddress interface"), hidden, pointer_default(unique) ] interface IEnumAddress : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] ITAddress ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumAddress ** ppEnum ); } [ uuid( A3C15450-5B92-11d1-8F4E-00C04FB6809F ), helpstring("TAPI 3.0 IEnumCallHub interface"), hidden, pointer_default(unique) ] interface IEnumCallHub : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] ITCallHub ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumCallHub ** ppEnum ); } [ uuid( 35372049-0BC6-11d2-A033-00C04FB6809F ), helpstring("TAPI 3.0 IEnumBstr interface"), hidden, pointer_default(unique) ] interface IEnumBstr : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] BSTR * ppStrings, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumBstr ** ppEnum ); } [ uuid( 4567450C-DBEE-4e3f-AAF5-37BF9EBF5E29 ), helpstring("TAPI 3.1 IEnumPluggableTerminalClassInfo interface"), hidden, pointer_default(unique) ] interface IEnumPluggableTerminalClassInfo : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] ITPluggableTerminalClassInfo** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumPluggableTerminalClassInfo ** ppEnum ); } [ uuid( E9586A80-89E6-4cff-931D-478D5751F4C0 ), helpstring("TAPI 3.1 IEnumPluggableSuperclassInfo interface"), hidden, pointer_default(unique) ] interface IEnumPluggableSuperclassInfo : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt)] ITPluggableTerminalSuperclassInfo** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumPluggableSuperclassInfo ** ppEnum ); } /////////////////////////////////////////////////////// // ITPhoneEvent /////////////////////////////////////////////////////// [ uuid( 8F942DD8-64ED-4aaf-A77D-B23DB0837EAD ), helpstring("TAPI 3.1 ITPhoneEvent Interface"), oleautomation ] interface ITPhoneEvent : IDispatch { [propget, id(1), helpstring("property Phone")] HRESULT Phone( [out, retval] ITPhone ** ppPhone ); [propget, id(2), helpstring("property Event")] HRESULT Event( [out, retval] PHONE_EVENT * pEvent ); [propget, id(3), helpstring("property ButtonState")] HRESULT ButtonState( [out, retval] PHONE_BUTTON_STATE * pState ); [propget, id(4), helpstring("property HookSwitchState")] HRESULT HookSwitchState( [out, retval] PHONE_HOOK_SWITCH_STATE * pState ); [propget, id(5), helpstring("property HookSwitchDevice")] HRESULT HookSwitchDevice( [out, retval] PHONE_HOOK_SWITCH_DEVICE * pDevice ); [propget, id(6), helpstring("property RingMode")] HRESULT RingMode( [out, retval] long * plRingMode ); [propget, id(7), helpstring("property ButtonLampId")] HRESULT ButtonLampId( [out, retval] long * plButtonLampId ); [propget, id(8), helpstring("property NumberGathered")] HRESULT NumberGathered( [out, retval] BSTR * ppNumber ); [propget, id(9), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); } [ uuid( 62F47097-95C9-11d0-835D-00AA003CCABD ), helpstring("TAPI 3.0 ITCallStateEvent Interface"), dual ] interface ITCallStateEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property State")] HRESULT State( [out, retval] CALL_STATE * pCallState ); [propget, id(3), helpstring("property Cause")] HRESULT Cause( [out, retval] CALL_STATE_EVENT_CAUSE * pCEC ); [propget, id(4), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( 63FFB2A6-872B-4cd3-A501-326E8FB40AF7 ), helpstring("TAPI 3.1 ITPhoneDeviceSpecificEvent interface"), oleautomation ] interface ITPhoneDeviceSpecificEvent : IDispatch { [propget, id(1), helpstring("property Phone")] HRESULT Phone( [out, retval] ITPhone ** ppPhone ); [propget, id(2), helpstring("property lParam1")] HRESULT lParam1( [out, retval] long *pParam1); [propget, id(3), helpstring("property lParam2")] HRESULT lParam2( [out, retval] long *pParam2); [propget, id(4), helpstring("property lParam3")] HRESULT lParam3( [out, retval] long *pParam3); } [ uuid( FF36B87F-EC3A-11d0-8EE4-00C04FB6809F ), helpstring("TAPI 3.0 ITCallMediaEvent Interface"), dual ] interface ITCallMediaEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property Event")] HRESULT Event( [out, retval] CALL_MEDIA_EVENT * pCallMediaEvent ); [propget, id(3), helpstring("property Error")] HRESULT Error( [out, retval] HRESULT * phrError ); [propget, id(4), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); [propget, id(5), helpstring("property Stream")] HRESULT Stream( [out, retval] ITStream ** ppStream ); [propget, id(6), helpstring("property Cause")] HRESULT Cause( [out, retval] CALL_MEDIA_EVENT_CAUSE * pCause ); } [ uuid( 80D3BFAC-57D9-11d2-A04A-00C04FB6809F ), helpstring("TAPI 3.0 ITDigitDetectionEvent interface"), oleautomation ] interface ITDigitDetectionEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property Digit")] HRESULT Digit( [out, retval] unsigned char * pucDigit ); [propget, id(3), helpstring("property DigitMode")] HRESULT DigitMode( [out, retval] TAPI_DIGITMODE * pDigitMode ); [propget, id(4), helpstring("property TickCount")] HRESULT TickCount( [out, retval] long * plTickCount ); [propget, id(5), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid(80D3BFAD-57D9-11d2-A04A-00C04FB6809F), helpstring("TAPI 3.0 ITDigitGenerationEvent interface"), dual ] interface ITDigitGenerationEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property GenerationTermination")] HRESULT GenerationTermination( [out, retval] long * plGenerationTermination ); [propget, id(3), helpstring("property TickCount")] HRESULT TickCount( [out, retval] long * plTickCount ); [propget, id(4), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( E52EC4C1-CBA3-441a-9E6A-93CB909E9724 ), helpstring("TAPI 3.1 ITDigitsGatheredEvent Interface"), dual ] interface ITDigitsGatheredEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property Digits")] HRESULT Digits( [out, retval] BSTR * ppDigits ); [propget, id(3), helpstring("property GatherTermination")] HRESULT GatherTermination( [out, retval] TAPI_GATHERTERM * pGatherTermination ); [propget, id(4), helpstring("property TickCount")] HRESULT TickCount( [out, retval] long * plTickCount ); [propget, id(5), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( 407E0FAF-D047-4753-B0C6-8E060373FECD ), helpstring("TAPI 3.1 ITToneDetectionEvent Interface"), dual ] interface ITToneDetectionEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCallInfo ); [propget, id(2), helpstring("property AppSpecific")] HRESULT AppSpecific( [out, retval] long * plAppSpecific ); [propget, id(3), helpstring("property TickCount")] HRESULT TickCount( [out, retval] long * plTickCount ); [propget, id(4), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( F4854D48-937A-11d1-BB58-00C04FB6809F ), helpstring("TAPI 3.0 ITTAPIObjectEvent Interface"), dual ] interface ITTAPIObjectEvent : IDispatch { [propget, id(1), helpstring("property TAPIObject")] HRESULT TAPIObject( [out, retval] ITTAPI ** ppTAPIObject ); [propget, id(2), helpstring("property Event")] HRESULT Event( [out, retval] TAPIOBJECT_EVENT * pEvent ); [propget, id(3), helpstring("property Address")] HRESULT Address( [out, retval] ITAddress ** ppAddress ); [propget, id(4), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( 359DDA6E-68CE-4383-BF0B-169133C41B46 ), helpstring("TAPI 3.1 ITTAPIObjectEvent2 interface"), oleautomation ] interface ITTAPIObjectEvent2 : ITTAPIObjectEvent { [propget, id(5), helpstring("property Phone")] HRESULT Phone( [out, retval] ITPhone ** ppPhone ); } [ uuid( EDDB9426-3B91-11d1-8F30-00C04FB6809F ), helpstring("TAPI 3.0 ITTAPIEventNotification Interface"), oleautomation ] interface ITTAPIEventNotification : IUnknown { [id(1), helpstring("method Event")] HRESULT Event( [in] TAPI_EVENT TapiEvent, [in] IDispatch * pEvent ); } [ uuid( A3C15451-5B92-11d1-8F4E-00C04FB6809F ), helpstring("TAPI 3.0 ITCallHubEvent Interface"), oleautomation ] interface ITCallHubEvent : IDispatch { [propget, id(1), helpstring("property Event")] HRESULT Event( [out, retval] CALLHUB_EVENT * pEvent ); [propget, id(2), helpstring("property CallHub")] HRESULT CallHub( [out, retval] ITCallHub ** ppCallHub ); [propget, id(3), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); } [ uuid( 831CE2D1-83B5-11d1-BB5C-00C04FB6809F ), helpstring("TAPI 3.0 ITAddressEvent interface"), oleautomation ] interface ITAddressEvent : IDispatch { [propget, id(1), helpstring("property Address")] HRESULT Address( [out, retval] ITAddress ** ppAddress ); [propget, id(2), helpstring("property Event")] HRESULT Event( [out, retval] ADDRESS_EVENT * pEvent ); [propget, id(3), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); } [ uuid( 3ACB216B-40BD-487a-8672-5CE77BD7E3A3 ), helpstring("TAPI 3.1 ITAddressDeviceSpecificEvent interface"), oleautomation ] interface ITAddressDeviceSpecificEvent : IDispatch { [propget, id(1), helpstring("property Address")] HRESULT Address( [out, retval] ITAddress ** ppAddress ); [propget, id(2), helpstring("property Call")] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(3), helpstring("property lParam1")] HRESULT lParam1( [out, retval] long *pParam1); [propget, id(4), helpstring("property lParam2")] HRESULT lParam2( [out, retval] long *pParam2); [propget, id(5), helpstring("property lParam3")] HRESULT lParam3( [out, retval] long *pParam3); } [ uuid( E4A7FBAC-8C17-4427-9F55-9F589AC8AF00 ), helpstring("TAPI 3.0 ITFileTerminalEvent interface"), oleautomation ] interface ITFileTerminalEvent : IDispatch { [propget, id(1), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); [propget, id(2), helpstring("property Track")] HRESULT Track( [out, retval] ITFileTrack ** ppTrackTerminal ); [propget, id(3), helpstring("property Call") ] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(4), helpstring("property State")] HRESULT State( [out, retval] TERMINAL_MEDIA_STATE * pState); [propget, id(5), helpstring("property Cause")] HRESULT Cause( [out, retval] FT_STATE_EVENT_CAUSE * pCause ); [propget, id(6), helpstring("property Error")] HRESULT Error( [out, retval] HRESULT * phrErrorCode ); } [ uuid( D964788F-95A5-461d-AB0C-B9900A6C2713 ), helpstring("TAPI 3.0 ITTTSTerminalEvent interface"), oleautomation ] interface ITTTSTerminalEvent : IDispatch { [propget, id(1), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); [propget, id(2), helpstring("property Call") ] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(3), helpstring("property Error")] HRESULT Error( [out, retval] HRESULT * phrErrorCode ); } [ uuid( EE016A02-4FA9-467c-933F-5A15B12377D7 ), helpstring("TAPI 3.0 ITASRTerminalEvent interface"), oleautomation ] interface ITASRTerminalEvent : IDispatch { [propget, id(1), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); [propget, id(2), helpstring("property Call") ] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(3), helpstring("property Error")] HRESULT Error( [out, retval] HRESULT * phrErrorCode ); } [ uuid( E6F56009-611F-4945-BBD2-2D0CE5612056 ), helpstring("TAPI 3.0 ITToneTerminalEvent interface"), oleautomation ] interface ITToneTerminalEvent : IDispatch { [propget, id(1), helpstring("property Terminal")] HRESULT Terminal( [out, retval] ITTerminal ** ppTerminal ); [propget, id(2), helpstring("property Call") ] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(3), helpstring("property Error")] HRESULT Error( [out, retval] HRESULT * phrErrorCode ); } [ uuid( CFA3357C-AD77-11d1-BB68-00C04FB6809F ), helpstring("TAPI 3.0 ITQOSEvent Interface"), oleautomation ] interface ITQOSEvent : IDispatch { [propget, id(1), helpstring("property CallHub")] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [propget, id(3), helpstring("property Event")] HRESULT Event( [out, retval] QOS_EVENT * pQosEvent ); [propget, id(4), helpstring("property MediaType")] HRESULT MediaType( [out, retval] long * plMediaType ); } [ uuid( 5D4B65F9-E51C-11d1-A02F-00C04FB6809F ), helpstring("TAPI 3.0 ITCallInfoChangeEvent Interface"), oleautomation ] interface ITCallInfoChangeEvent : IDispatch { [ propget, id(1), helpstring("property Call") ] HRESULT Call( [out, retval] ITCallInfo ** ppCall ); [ propget, id(2), helpstring("property Cause") ] HRESULT Cause( [out, retval] CALLINFOCHANGE_CAUSE * pCIC ); [ propget, id(3), helpstring("property Callback Instance") ] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( AC48FFDF-F8C4-11d1-A030-00C04FB6809F ), helpstring("TAPI 3.0 ITRequest Interface"), oleautomation ] interface ITRequest : IDispatch { [ id(1), helpstring("method MakeCall") ] HRESULT MakeCall( [in] BSTR pDestAddress, [in] BSTR pAppName, [in] BSTR pCalledParty, [in] BSTR pComment ); } [ uuid(AC48FFDE-F8C4-11d1-A030-00C04FB6809F ), helpstring("TAPI 3.0 ITRequestEvent Interface"), oleautomation ] interface ITRequestEvent : IDispatch { [ propget, id(1), helpstring("property RegistrationInstance") ] HRESULT RegistrationInstance( [out, retval] long * plRegistrationInstance ); [ propget, id(2), helpstring("property RequestMode") ] HRESULT RequestMode( [out, retval] long * plRequestMode ); [ propget, id(3), helpstring("property DestAddress") ] HRESULT DestAddress( [out, retval] BSTR * ppDestAddress ); [ propget, id(5), helpstring("property AppName") ] HRESULT AppName( [out, retval] BSTR * ppAppName ); [ propget, id(6), helpstring("property CalledParty") ] HRESULT CalledParty( [out, retval] BSTR * ppCalledParty ); [ propget, id(7), helpstring("property Comment") ] HRESULT Comment( [out, retval] BSTR * ppComment ); } [ object, public, uuid( 5EC5ACF2-9C02-11d0-8362-00AA003CCABD ), helpstring("TAPI 3.0 ITCollection interface"), dual ] interface ITCollection : IDispatch { [propget, helpstring("Returns number of items in collection.")] HRESULT Count( [out, retval] long * lCount ); [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")] HRESULT Item( [in] long Index, [out, retval] VARIANT * pVariant ); [propget, restricted, id(DISPID_NEWENUM), helpstring("returns an enumerator for the collection.")] HRESULT _NewEnum( [out, retval] IUnknown ** ppNewEnum ); } [ object, public, uuid( E6DDDDA5-A6D3-48ff-8737-D32FC4D95477 ), helpstring("TAPI 3.1 ITCollection2 interface"), dual ] interface ITCollection2 : ITCollection { [id(1), helpstring("Adds an item to the collection.")] HRESULT Add( [in] long Index, [in] VARIANT * pVariant ); [id(2), helpstring("Removes an item from the collection.")] HRESULT Remove( [in] long Index ); } [ uuid( 449F659E-88A3-11d1-BB5D-00C04FB6809F ), helpstring("TAPI 3.0 ITForwardInformation Interface"), dual ] interface ITForwardInformation : IDispatch { [propput, id(1), helpstring("property NumRingsNoAnswer")] HRESULT NumRingsNoAnswer( [in] long lNumRings ); [propget, id(1), helpstring("property NumRingsNoAnswer")] HRESULT NumRingsNoAnswer( [out, retval] long * plNumRings ); [id(2), helpstring("method SetForwardType")] HRESULT SetForwardType( [in] long ForwardType, [in] BSTR pDestAddress, [in] BSTR pCallerAddress ); [propget, id(3), helpstring("property ForwardTypeDestination")] HRESULT ForwardTypeDestination( [in] long ForwardType, [out, retval] BSTR * ppDestAddress ); [propget, id(4), helpstring("property ForwardTypeCaller")] HRESULT ForwardTypeCaller( [in] long Forwardtype, [out, retval] BSTR * ppCallerAddress ); [id(5),hidden] HRESULT GetForwardType( [in] long ForwardType, [out] BSTR * ppDestinationAddress, [out] BSTR * ppCallerAddress ); [id(6), helpstring("method Clear")] HRESULT Clear(); } [ uuid( 5229B4ED-B260-4382-8E1A-5DF3A8A4CCC0 ), helpstring("TAPI 3.1 ITForwardInformation2 Interface"), dual ] interface ITForwardInformation2 : ITForwardInformation { [id(7), helpstring("method SetForwardType2")] HRESULT SetForwardType2( [in] long ForwardType, [in] BSTR pDestAddress, [in] long DestAddressType, [in] BSTR pCallerAddress, [in] long CallerAddressType ); [id(8),hidden] HRESULT GetForwardType2( [in] long ForwardType, [out] BSTR * ppDestinationAddress, [out] long * pDestAddressType, [out] BSTR * ppCallerAddress, [out] long * pCallerAddressType ); [propget, id(9), helpstring("property ForwardTypeDestinationAddressType")] HRESULT ForwardTypeDestinationAddressType( [in] long ForwardType, [out, retval] long * pDestAddressType ); [propget, id(10), helpstring("property ForwardTypeCallerAddressType")] HRESULT ForwardTypeCallerAddressType( [in] long Forwardtype, [out, retval] long * pCallerAddressType ); } [ uuid( 0C4D8F03-8DDB-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 ITAddressTranslation Interface"), dual ] interface ITAddressTranslation : IDispatch { [id(IDISPADDRESSTRANSLATION | 1), helpstring("method TranslateAddress")] HRESULT TranslateAddress( [in] BSTR pAddressToTranslate, [in] long lCard, [in] long lTranslateOptions, [out, retval] ITAddressTranslationInfo ** ppTranslated ); [ id(IDISPADDRESSTRANSLATION | 2), helpstring("method TranslateDialog")] HRESULT TranslateDialog( [in] TAPIHWND hwndOwner, [in] BSTR pAddressIn ); [id(IDISPADDRESSTRANSLATION | 3), hidden, helpstring("method EnumerateLocations")] HRESULT EnumerateLocations( [out, retval] IEnumLocation ** ppEnumLocation ); [propget, id(IDISPADDRESSTRANSLATION | 4), helpstring("property Locations")] HRESULT Locations( [out, retval] VARIANT * pVariant ); [id(IDISPADDRESSTRANSLATION | 5), hidden, helpstring("method EnumerateCallingCards")] HRESULT EnumerateCallingCards( [out, retval] IEnumCallingCard ** ppEnumCallingCard ); [propget, id(IDISPADDRESSTRANSLATION | 6), helpstring("property CallingCards")] HRESULT CallingCards( [out, retval] VARIANT * pVariant ); } [ uuid( AFC15945-8D40-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 ITAddressTranslationInfo Interface"), dual ] interface ITAddressTranslationInfo : IDispatch { [propget, id(1), helpstring("property Dialable String")] HRESULT DialableString( [out, retval] BSTR * ppDialableString ); [propget, id(2), helpstring("property Displayable String")] HRESULT DisplayableString( [out, retval] BSTR * ppDisplayableString ); [propget, id(3), helpstring("property Current Country Code")] HRESULT CurrentCountryCode( [out, retval] long * CountryCode ); [propget, id(4), helpstring("property Destination Country Code")] HRESULT DestinationCountryCode( [out, retval] long * CountryCode ); [propget, id(5), helpstring("property Translation Results")] HRESULT TranslationResults( [out, retval] long * plResults ); } [ uuid( 0C4D8EFF-8DDB-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 ITLocationInfo Interface"), dual ] interface ITLocationInfo : IDispatch { [propget, id(1), helpstring("property Permanent Location ID")] HRESULT PermanentLocationID( [out, retval] long * plLocationID ); [propget, id(2), helpstring("property Country Code")] HRESULT CountryCode( [out, retval] long * plCountryCode ); [propget, id(3), helpstring("property Country ID")] HRESULT CountryID( [out, retval] long * plCountryID ); [propget, id(4), helpstring("property Options")] HRESULT Options( [out, retval] long * plOptions ); [propget, id(5), helpstring("property Preferred Credit Card ID")] HRESULT PreferredCardID( [out, retval] long * plCardID ); [propget, id(6), helpstring("property Location Name")] HRESULT LocationName( [out, retval] BSTR * ppLocationName ); [propget, id(7), helpstring("property City/Area Code")] HRESULT CityCode( [out, retval] BSTR * ppCode ); [propget, id(8), helpstring("property Local Access Code")] HRESULT LocalAccessCode( [out, retval] BSTR * ppCode ); [propget, id(9), helpstring("property Long Distance Access Code")] HRESULT LongDistanceAccessCode( [out, retval] BSTR * ppCode ); [propget, id(10), helpstring("property Toll Prefix List")] HRESULT TollPrefixList( [out, retval] BSTR * ppTollList ); [propget, id(11), helpstring("property Cancel Call Waiting Code")] HRESULT CancelCallWaitingCode( [out, retval] BSTR * ppCode ); } [ uuid( 0C4D8F01-8DDB-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 IEnumLocation interface"), hidden, pointer_default(unique) ] interface IEnumLocation : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITLocationInfo ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumLocation ** ppEnum ); } [ uuid( 0C4D8F00-8DDB-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 ITCallingCard Interface"), dual ] interface ITCallingCard : IDispatch { [propget, id(1), helpstring("property Permanent Card ID")] HRESULT PermanentCardID( [out, retval] long * plCardID ); [propget, id(2), helpstring("property Number Of Digits")] HRESULT NumberOfDigits( [out, retval] long * plDigits ); [propget, id(3), helpstring("property Options")] HRESULT Options( [out, retval] long * plOptions ); [propget, id(4), helpstring("property Card Name")] HRESULT CardName( [out, retval] BSTR * ppCardName ); [propget, id(5), helpstring("property Same Area Dialing Rule")] HRESULT SameAreaDialingRule( [out, retval] BSTR * ppRule ); [propget, id(6), helpstring("property Long Distance Dialing Rule")] HRESULT LongDistanceDialingRule( [out, retval] BSTR * ppRule ); [propget, id(7), helpstring("property International Dialing Rule")] HRESULT InternationalDialingRule( [out, retval] BSTR * ppRule ); } [ uuid( 0C4D8F02-8DDB-11d1-A09E-00805FC147D3 ), helpstring("TAPI 3.0 IEnumCallingCard interface"), hidden, pointer_default(unique) ] interface IEnumCallingCard : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITCallingCard ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumCallingCard ** ppEnum ); } [ uuid( 895801DF-3DD6-11d1-8F30-00C04FB6809F ), helpstring("TAPI 3.0 ITCallNotificationEvent interface"), dual ] interface ITCallNotificationEvent : IDispatch { [propget, id(1), helpstring("property Call")] HRESULT Call( [out,retval] ITCallInfo ** ppCall ); [propget, id(2), helpstring("property Event")] HRESULT Event( [out,retval] CALL_NOTIFICATION_EVENT * pCallNotificationEvent ); [propget, id(3), helpstring("property CallbackInstance")] HRESULT CallbackInstance( [out, retval] long * plCallbackInstance ); } [ uuid( E9225295-C759-11d1-A02B-00C04FB6809F ), helpstring("TAPI 3.0 ITDispatchMapper interface") ] interface ITDispatchMapper : IDispatch { [id(1), helpstring("QueryDispatchInterface")] HRESULT QueryDispatchInterface( [in] BSTR pIID, [in] IDispatch * pInterfaceToMap, [out, retval] IDispatch ** ppReturnedInterface ); } [ uuid( EE3BD604-3868-11D2-A045-00C04FB6809F ), helpstring( "ITStreamControl interface" ), pointer_default(unique), dual ] interface ITStreamControl : IDispatch { [id(IDISPAGGREGATEDMSPCALLOBJ | 1), helpstring("method CreateStream")] HRESULT CreateStream( [in] long lMediaType, [in] TERMINAL_DIRECTION td, [out, retval] ITStream ** ppStream ); [id(IDISPAGGREGATEDMSPCALLOBJ | 2), helpstring("method RemoveStream")] HRESULT RemoveStream( [in] ITStream * pStream ); [id(IDISPAGGREGATEDMSPCALLOBJ | 3), hidden] HRESULT EnumerateStreams( [out] IEnumStream ** ppEnumStream ); [propget, id(IDISPAGGREGATEDMSPCALLOBJ | 4), helpstring("property Streams")] HRESULT Streams( [out, retval] VARIANT * pVariant ); } [ uuid( EE3BD605-3868-11D2-A045-00C04FB6809F ), helpstring( "ITStream interface" ), pointer_default(unique), dual ] interface ITStream : IDispatch { [propget, id(1), helpstring("property MediaType")] HRESULT MediaType( [out, retval] long * plMediaType ); [propget, id(2), helpstring("property Direction")] HRESULT Direction( [out, retval] TERMINAL_DIRECTION * pTD ); [propget, id(3), helpstring("property Name")] HRESULT Name( [out, retval] BSTR * ppName ); [id(4), helpstring("method StartStream")] HRESULT StartStream(void); [id(5), helpstring("method PauseStream")] HRESULT PauseStream(void); [id(6), helpstring("method StopStream")] HRESULT StopStream(void); [id(7), helpstring("method SelectTerminal")] HRESULT SelectTerminal( [in] ITTerminal * pTerminal ); [id(8), helpstring("method UnselectTerminal")] HRESULT UnselectTerminal( [in] ITTerminal * pTerminal ); [id(9), hidden] HRESULT EnumerateTerminals( [out] IEnumTerminal ** ppEnumTerminal ); [propget, id(10), helpstring("property Terminals")] HRESULT Terminals( [out, retval] VARIANT * pTerminals ); } [ uuid( EE3BD606-3868-11d2-A045-00C04FB6809F ), helpstring( "IEnumStream interface" ), hidden, pointer_default(unique) ] interface IEnumStream : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITStream ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumStream ** ppEnum ); } [ uuid( EE3BD607-3868-11D2-A045-00C04FB6809F ), helpstring( "ITSubStreamControl interface" ), pointer_default(unique), dual ] interface ITSubStreamControl : IDispatch { [id(1), helpstring("method CreateSubStream")] HRESULT CreateSubStream( [out, retval] ITSubStream ** ppSubStream ); [id(2), helpstring("method RemoveSubStream")] HRESULT RemoveSubStream( [in] ITSubStream * pSubStream ); [id(3), hidden] HRESULT EnumerateSubStreams( [out] IEnumSubStream ** ppEnumSubStream ); [propget, id(4), helpstring("property SubStreams")] HRESULT SubStreams( [out, retval] VARIANT * pVariant ); } [ uuid( EE3BD608-3868-11D2-A045-00C04FB6809F ), helpstring( "ITSubStream interface" ), pointer_default(unique), dual ] interface ITSubStream : IDispatch { [id(1), helpstring("method StartStream")] HRESULT StartSubStream(void); [id(2), helpstring("method PauseStream")] HRESULT PauseSubStream(void); [id(3), helpstring("method StopStream")] HRESULT StopSubStream(void); [id(4), helpstring("method SelectTerminal")] HRESULT SelectTerminal( [in] ITTerminal * pTerminal ); [id(5), helpstring("method UnselectTerminal")] HRESULT UnselectTerminal( [in] ITTerminal * pTerminal ); [id(6), hidden] HRESULT EnumerateTerminals( [out] IEnumTerminal ** ppEnumTerminal ); [propget, id(7), helpstring("property Terminals")] HRESULT Terminals( [out, retval] VARIANT * pTerminals ); [propget, id(8), helpstring("property Stream")] HRESULT Stream( [out, retval] ITStream ** ppITStream ); } [ uuid( EE3BD609-3868-11d2-A045-00C04FB6809F ), helpstring( "IEnumSubStream interface" ), hidden, pointer_default(unique) ] interface IEnumSubStream : IUnknown { HRESULT Next( [in] ULONG celt, [out] ITSubStream ** ppElements, [in,out,ptr] ULONG * pceltFetched ); HRESULT Reset( void ); HRESULT Skip ( [in] ULONG celt ); HRESULT Clone ( [out, retval] IEnumSubStream ** ppEnum ); } [ uuid( 207823EA-E252-11d2-B77E-0080C7135381 ), helpstring("ITLegacyWaveSupport"), dual ] interface ITLegacyWaveSupport : IDispatch { HRESULT IsFullDuplex( [out] FULLDUPLEX_SUPPORT * pSupport ); } [ uuid(161A4A56-1E99-4b3f-A46A-168F38A5EE4C ), helpstring("TAPI 3.0 ITBasicCallControl2 interface"), dual ] interface ITBasicCallControl2 : ITBasicCallControl { [id(IDISPBASICCALLCONTROL | 23), helpstring("method RequestTerminal")] HRESULT RequestTerminal( [in] BSTR bstrTerminalClassGUID, [in] long lMediaType, [in] TERMINAL_DIRECTION Direction, [out, retval] ITTerminal ** ppTerminal ); [id(IDISPBASICCALLCONTROL | 24), helpstring("method SelectTerminalOnCall")] HRESULT SelectTerminalOnCall( [in] ITTerminal *pTerminal ); [id(IDISPBASICCALLCONTROL | 25), helpstring("method UnselectTerminalOnCall")] HRESULT UnselectTerminalOnCall( [in] ITTerminal *pTerminal ); } [ uuid( B87658BD-3C59-4f64-BE74-AEDE3E86A81E ), helpstring("TAPI 3.0 ITScriptableAudioFormat Interface"), dual ] interface ITScriptableAudioFormat : IDispatch { [propget, id(1), helpstring("property Channels")] HRESULT Channels( [out, retval] long* pVal ); [propput, id(1), helpstring("property Channels")] HRESULT Channels( [in] const long nNewVal ); [propget, id(2), helpstring("property SamplesPerSec")] HRESULT SamplesPerSec( [out, retval] long* pVal ); [propput, id(2), helpstring("property SamplesPerSec")] HRESULT SamplesPerSec( [in] const long nNewVal ); [propget, id(3), helpstring("property AvgBytesPerSec")] HRESULT AvgBytesPerSec( [out, retval] long* pVal ); [propput, id(3), helpstring("property AvgBytesPerSec")] HRESULT AvgBytesPerSec( [in] const long nNewVal ); [propget, id(4), helpstring("property BlockAlign")] HRESULT BlockAlign( [out, retval] long* pVal ); [propput, id(4), helpstring("property BlockAlign")] HRESULT BlockAlign( [in] const long nNewVal ); [propget, id(5), helpstring("property BitsPerSample")] HRESULT BitsPerSample( [out, retval] long* pVal ); [propput, id(5), helpstring("property BitsPerSample")] HRESULT BitsPerSample( [in] const long nNewVal ); [propget, id(6), helpstring("property FormatTag")] HRESULT FormatTag( [out, retval] long* pVal ); [propput, id(6), helpstring("property FormatTag")] HRESULT FormatTag( [in] const long nNewVal ); }; cpp_quote("/****************************************") cpp_quote(" * Terminal Classes") cpp_quote(" ****************************************/") cpp_quote("") cpp_quote("// Video Windows - {F7438990-D6EB-11d0-82A6-00AA00B5CA1B}") cpp_quote("EXTERN_C const CLSID CLSID_VideoWindowTerm;") cpp_quote("") cpp_quote("// Video input (camera) {AAF578EC-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_VideoInputTerminal;") cpp_quote("") cpp_quote("// Handset device {AAF578EB-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_HandsetTerminal;") cpp_quote("") cpp_quote("// Headset device {AAF578ED-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_HeadsetTerminal;") cpp_quote("") cpp_quote("// Speakerphone device {AAF578EE-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_SpeakerphoneTerminal;") cpp_quote("") cpp_quote("// Microphone (sound card) {AAF578EF-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_MicrophoneTerminal;") cpp_quote("") cpp_quote("// Speakers (sound card) {AAF578F0-DC70-11d0-8ED3-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID CLSID_SpeakersTerminal;") cpp_quote("") cpp_quote("// Media stream terminal {E2F7AEF7-4971-11D1-A671-006097C9A2E8}") cpp_quote("EXTERN_C const CLSID CLSID_MediaStreamTerminal;") cpp_quote("") cpp_quote("// File Recording terminal {521F3D06-C3D0-4511-8617-86B9A783DA77}") cpp_quote("EXTERN_C const CLSID CLSID_FileRecordingTerminal;") cpp_quote("") cpp_quote("// File Recording Track {BF14A2E4-E88B-4ef5-9740-5AC5D022F8C9}") cpp_quote("EXTERN_C const CLSID CLSID_FileRecordingTrack;") cpp_quote("") cpp_quote("// File Playback Terminal {0CB9914C-79CD-47dc-ADB0-327F47CEFB20}") cpp_quote("EXTERN_C const CLSID CLSID_FilePlaybackTerminal;") cpp_quote("") cpp_quote("// define the media modes") cpp_quote("#define TAPIMEDIATYPE_AUDIO 0x8") cpp_quote("#define TAPIMEDIATYPE_VIDEO 0x8000") cpp_quote("#define TAPIMEDIATYPE_DATAMODEM 0x10") cpp_quote("#define TAPIMEDIATYPE_G3FAX 0x20") cpp_quote("#define TAPIMEDIATYPE_MULTITRACK 0x10000") cpp_quote("") cpp_quote("// {831CE2D6-83B5-11d1-BB5C-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_PSTN;") cpp_quote("") cpp_quote("// {831CE2D7-83B5-11d1-BB5C-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_H323;") cpp_quote("") cpp_quote("// {831CE2D8-83B5-11d1-BB5C-00C04FB6809F}") cpp_quote("EXTERN_C const CLSID TAPIPROTOCOL_Multicast;") cpp_quote("") cpp_quote("#define __TapiConstants_MODULE_DEFINED__") #endif // __TAPI3IF_IDL__