/*--------------------------------------------------------------------------- Swyx Communications AG Emil-Figge-Str. 80 44227 Dortmund --------------------------------------------------------------------------- Project: SkinPhone Module: Client Line Manager Comments: upper interface definition, interface to SwyxIt!, ... -------------------------------------------------------------------------- $Archive:: /Client/CLMgr.root/CLMgr.idl $ $Author:: Torsten.anneessen $ $Date:: 16.01.06 19:00 $ $Modtime:: 16.01.06 18:11 $ $Revision:: 29 $ $Workfile:: CLMgr.idl $ $NoKeywords: $ ----------------------------------------------------------------------------*/ // CLMgr.idl : IDL source for CLMgr.dll // // This file will be processed by the MIDL tool to // produce the type library (CLMgr.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; import "CLCOMApi.idl"; #include "CLMgrPub.idl" #include "CLMgrQA.idl" #include "CLMgrTypes.h" typedef enum { DirNone = 0, Request, ResponseOK, ResponseTimeout } MSGDIR; typedef enum { TypeNone = 0, Hallo, Bye, Msg, State } MSGTYPE; typedef enum { CollaborationNone = 0, CollaborationInvitation, CollaborationOK, CollaborationFailed } COLLABORATIONMSGTYPE; typedef enum { // No session active VideoSessionNone = 1, // Session is being created, no participant has connected yet VideoSessionPending = 2, // Session is running, participant connected VideoSessionRunning = 3, // Session is suspended VideoSessionSuspended = 4, // Session failed for some reason. VideoSessionFailure = 5 } VIDEOSESSIONSTATES; typedef enum { VideoResultNone = 0, VideoResultOK, VideoResultFailed, VideoResultDeny } VIDEORESULT; typedef struct { BSTR m_sAcknowledgedDialstring; //dialstring that has been acknowledged by server so far BSTR m_sPeerNumber; //phone number of peer, incoming and outgoing BSTR m_sPeerName; //name of peer, incoming and outgoing BSTR m_sCalledExtension; //extension of called line (extension from us, or group extension) BSTR m_sCalledName; //name of called PBX user (our name, group name) BOOL m_bIsDirectCall; //this call ought to be a direct call BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BOOL m_bIsGroupCall; //this call was a directed to the whole group BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call BSTR m_sChargingDetails; //string containing charging information int m_iNuberOfConferenceParticipants; //number or participants in a conference; 0: no conference int m_DiscReason; //disconnect reason SClTime m_ConnectionStartTime; //start time of current connection SClTime m_ConnectionFinishedTime; //end time of current connection } CLMgrLineDetails; typedef struct { BSTR m_sAcknowledgedDialstring; //dialstring that has been acknowledged by server so far BSTR m_sPeerNumber; //phone number of peer, incoming and outgoing BSTR m_sPeerName; //name of peer, incoming and outgoing DWORD m_dwPeerIpAddress; //IP address of peer BSTR m_sCalledExtension; //extension of called line (extension from us, or group extension) BSTR m_sCalledName; //name of called PBX user (our name, group name) BOOL m_bIsDirectCall; //this call ought to be a direct call BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BOOL m_bIsGroupCall; //this call was a directed to the whole group BOOL m_bIsRecording; //true: this call is recorded (big brother) BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call BOOL m_bIsBlindCallTransferDestination; //this call will be transferred from caller after connect BSTR m_sBlindCallTransferSourceNumber; //number of PBX user that will be transferred to us BSTR m_sBlindCallTransferSourceName; //name of PBX user that will be transferred to us BSTR m_sChargingDetails; //string containing charging information int m_iNuberOfConferenceParticipants; //number or participants in a conference; 0: no conference int m_DiscReason; //disconnect reason SClTime m_ConnectionStartTime; //start time of current connection SClTime m_ConnectionFinishedTime; //end time of current connection } CLMgrLineDetailsEx; typedef struct { BSTR m_sAcknowledgedDialstring; //dialstring that has been acknowledged by server so far BSTR m_sPeerNumber; //phone number of peer, incoming and outgoing BSTR m_sPeerName; //name of peer, incoming and outgoing DWORD m_dwPeerIpAddress; //IP address of peer BSTR m_sCalledExtension; //extension of called line (extension from us, or group extension) BSTR m_sCalledName; //name of called PBX user (our name, group name) BOOL m_bIsDirectCall; //this call ought to be a direct call BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BOOL m_bIsGroupCall; //this call was a directed to the whole group BOOL m_bIsRecording; //true: this call is recorded (big brother) BOOL m_bIsOutgoing; //true: this is an outgoing connection BOOL m_bIsInternalCall; //true: call is from other PBX user BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call BOOL m_bIsBlindCallTransferDestination; //this call will be transferred from caller after connect BSTR m_sBlindCallTransferSourceNumber; //number of PBX user that will be transferred to us BSTR m_sBlindCallTransferSourceName; //name of PBX user that will be transferred to us BSTR m_sChargingDetails; //string containing charging information int m_iNuberOfConferenceParticipants; //number or participants in a conference; 0: no conference int m_DiscReason; //disconnect reason SClTime m_ConnectionStartTime; //start time of current connection SClTime m_ConnectionFinishedTime; //end time of current connection } CLMgrLineDetailsEx2; typedef enum { HITIncomingCall=0, HITOutgoingCall, HITConnect, HITHold, HITConference, HITTransferCall, HITTransferFailed, HITBlindTransferCall, HITBlindTransferFailed, HITDisconnect } CLMgrCallHistoryItemType; typedef struct { CLMgrCallHistoryItemType m_HistoryItemType; //type of call history item SClTime m_Timestamp; //timestamp when event occured int m_DiscReason; //disconnect reason for "transfer failed" and disconnect events BSTR m_PeersNumber; //peer number related to event BSTR m_PeersName; //peer name related to event } CLMgrCallHistoryItem; typedef struct { BSTR m_sAcknowledgedDialstring; //dialstring that has been acknowledged by server so far BSTR m_sPeerNumber; //phone number of peer, incoming and outgoing BSTR m_sPeerName; //name of peer, incoming and outgoing DWORD m_dwPeerIpAddress; //IP address of peer BSTR m_sCalledExtension; //extension of called line (extension from us, or group extension) BSTR m_sCalledName; //name of called PBX user (our name, group name) BOOL m_bIsDirectCall; //this call ought to be a direct call BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BOOL m_bIsGroupCall; //this call was a directed to the whole group BOOL m_bIsRecording; //true: this call is recorded (big brother) BOOL m_bIsOutgoing; //true: this is an outgoing connection BOOL m_bIsInternalCall; //true: call is from other PBX user BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call BOOL m_bIsBlindCallTransferDestination; //this call will be transferred from caller after connect BSTR m_sBlindCallTransferSourceNumber; //number of PBX user that will be transferred to us BSTR m_sBlindCallTransferSourceName; //name of PBX user that will be transferred to us BSTR m_sChargingDetails; //string containing charging information int m_iNuberOfConferenceParticipants; //number or participants in a conference; 0: no conference int m_DiscReason; //disconnect reason SClTime m_ConnectionStartTime; //start time of current connection SClTime m_ConnectionFinishedTime; //end time of current connection unsigned long m_CallId; //unique call ID int m_HistoryItemsArraySize; //size of history items array (must set by client) int m_NumHistoryItems; //number of filled in history items (set by line manager) int m_NumHistoryItemsAvailable; //number of available history items (if m_NumHistoryItemsAvailable>m_NumHistoryItems, buffer was too small) [size_is(m_HistoryItemsArraySize)] CLMgrCallHistoryItem m_CallHistoryItems[]; //array of history items; array size given in m_HistoryItemsArraySize //array has to be allocated by client application } CLMgrLineDetailsEx3; typedef struct { BSTR m_sAcknowledgedDialstring; //dialstring that has been acknowledged by server so far BSTR m_sPeerNumber; //phone number of peer, incoming and outgoing BSTR m_sPeerName; //name of peer, incoming and outgoing DWORD m_dwPeerIpAddress; //IP address of peer BSTR m_sCalledExtension; //extension of called line (extension from us, or group extension) BSTR m_sCalledName; //name of called PBX user (our name, group name) BOOL m_bIsDirectCall; //this call ought to be a direct call BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BOOL m_bIsGroupCall; //this call was a directed to the whole group BOOL m_bIsRecording; //true: this call is recorded (big brother) BOOL m_bIsOutgoing; //true: this is an outgoing connection BOOL m_bIsInternalCall; //true: call is from other PBX user BOOL m_bCallbackRequested; //true: we requested callback for this connection BOOL m_bCallbackOnBusyRequested; //true: we requested callback on busy for this connection BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call BOOL m_bIsBlindCallTransferDestination; //this call will be transferred from caller after connect BSTR m_sBlindCallTransferSourceNumber; //number of PBX user that will be transferred to us BSTR m_sBlindCallTransferSourceName; //name of PBX user that will be transferred to us BSTR m_sChargingDetails; //string containing charging information int m_iNuberOfConferenceParticipants; //number or participants in a conference; 0: no conference int m_DiscReason; //disconnect reason SClTime m_ConnectionStartTime; //start time of current connection SClTime m_ConnectionFinishedTime; //end time of current connection unsigned long m_CallId; //unique call ID int m_HistoryItemsArraySize; //size of history items array (must set by client) int m_NumHistoryItems; //number of filled in history items (set by line manager) int m_NumHistoryItemsAvailable; //number of available history items (if m_NumHistoryItemsAvailable>m_NumHistoryItems, buffer was too small) [size_is(m_HistoryItemsArraySize)] CLMgrCallHistoryItem m_CallHistoryItems[]; //array of history items; array size given in m_HistoryItemsArraySize //array has to be allocated by client application } CLMgrLineDetailsEx4; typedef struct { BSTR m_sLastCallLcrPrefix; //LCR prefix of last call BSTR m_sLastCallOriginatingExtension; //our extension that was used for that call BSTR m_sLastCallChargingDetails; //charging of last call BSTR m_sLastCallPeersPbxUserName; //peer name of last call BSTR m_sLastCallPeersNumber; //peer number of last call SClTime m_LastCallStartTime; //start time of last call SClTime m_LastCallFinishedTime; //end time of last call } CLMgrCallDetails; typedef struct { BSTR m_sLastCallLcrPrefix; //LCR prefix of last call BSTR m_sLastCallOriginatingExtension; //our extension that was used for that call BSTR m_sLastCallChargingDetails; //charging of last call BSTR m_sLastCallPeersPbxUserName; //peer name of last call BSTR m_sLastCallPeersNumber; //peer number of last call SClTime m_LastCallStartTime; //start time of last call SClTime m_LastCallFinishedTime; //end time of last call BOOL m_LastCallIsOutgoing; //true: this is an outgoing connection BOOL m_LastCallWasConnected; //true: there has been a voice connection int m_LastCallDiscReason; //disconnect reason } CLMgrCallDetailsEx; typedef struct { BSTR m_sLastCallLcrPrefix; //LCR prefix of last call BSTR m_sLastCallOriginatingExtension; //our extension that was used for that call BSTR m_sLastCallChargingDetails; //charging of last call BSTR m_sLastCallPeersPbxUserName; //peer name of last call BSTR m_sLastCallPeersNumber; //peer number of last call SClTime m_LastCallStartTime; //start time of last call SClTime m_LastCallFinishedTime; //end time of last call BOOL m_LastCallIsOutgoing; //true: this is an outgoing connection BOOL m_LastCallWasConnected; //true: there has been a voice connection int m_LastCallDiscReason; //disconnect reason unsigned long m_LastCallId; //unique call ID int m_LastCallHistoryItemsArraySize; //size of history items array (must set by client) int m_LastCallNumHistoryItems; //number of filled in history items (set by line manager) int m_LastCallNumHistoryItemsAvailable; //number of available history items (if m_NumHistoryItemsAvailable>m_NumHistoryItems, buffer was too small) [size_is(m_LastCallHistoryItemsArraySize)] CLMgrCallHistoryItem m_LastCallCallHistoryItems[]; //array of history items; array size given in m_LastCallHistoryItemsArraySize //array has to be allocated by client application } CLMgrCallDetailsEx3; typedef struct { BSTR m_sPeerNumber; //or calling party number BSTR m_sPeerName; //name of peer BSTR m_sCalledExtension; //extension of called line BSTR m_sCalledName; //name of called PBX user BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call } CLMgrGroupNotificationDetails; typedef struct { BSTR m_sPeerNumber; //or calling party number BSTR m_sPeerName; //name of peer BSTR m_sCalledExtension; //extension of called line BSTR m_sCalledName; //name of called PBX user BOOL m_bCallWasRedirected; //this call was redirected (incoming and outgoing) BSTR m_sRedirectedFromNumber; //number of PBX user that forwarded this call BSTR m_sRedirectedFromName; //name of PBX user that forwarded this call unsigned long m_CallRefNum; //unique call ID } CLMgrGroupNotificationDetailsEx; typedef enum { SClPbxLineManager, SClTapiLineManager } SClLineManagerType; typedef struct { BOOL m_bHandSetSupport; BOOL m_bSelectLinePossible; BOOL m_bTransferPossible; BOOL m_bForwardCallPossible; BOOL m_bConferencePossible; BOOL m_bDirectCallPossible; BOOL m_bHidePhoneNumberPossible; BOOL m_bOnHoldPossible; } CLMgrCapabilities; typedef enum { SClLocationServerGlobalDataDir, SClLocationServerUserDataDir, SClLocationLocalUserDataDir, SClLocationFullPath } SClDataLocations; typedef struct { DWORD dwMajorVersion; // Major version DWORD dwMinorVersion; // Minor version DWORD dwBuildNumber; // Build number } CLMGRVERSIONINFO; typedef struct { BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder BOOL m_bHasMixer ; //associated mixer could be found BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel BSTR m_bstrMixerName; //name of associated mixer device } CLMgrSoundDeviceDescription; typedef struct { BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel BOOL m_bIsDirectXSoundDevice; //device is DirectX sound device BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder BOOL m_bHasMixer; //associated mixer could be found BOOL m_bHasDxAudioRenderer; //sound device can be used for ringing BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel BSTR m_bstrMixerName; //name of associated mixer device BSTR m_bstrDxAudioRenderer; //name of associated DX Audio Renderer device (used for ringing only) BSTR m_bstrManufacturerId; //HID Manufacturer ID BSTR m_bstrsProductId; //HID Product ID unsigned long m_dwManufacturerId; //HID Manufacturer ID unsigned long m_dwProductId; //HID Product ID BOOL m_bIsHandset; //device is a well known handset BOOL m_bIsHeadset; //device is a well known headset BOOL m_bIsSpeaker; //device is a well known device with speaker BOOL m_bHookSupportUSB; //device supports USB hook switch BOOL m_bHookSupportComPort; //device supports COM port hook switch BOOL m_iComPort; //COM port to be used BOOL m_bHookSupportGamePort; //device supports Game port hook switch BOOL m_bHookSupportBluetooth; //device supports bluetooth hook switch BOOL m_bIsWellKnownDevice; //device is well known and does not need calibration } CLMgrSoundDeviceDescriptionEx; typedef struct { unsigned long m_CallbackRequestId; //unique id unsigned long m_CallbackOnBusyId; //unique id SClTime m_Timestamp; //timestamp when event occured BSTR m_sPeersNumber; //peer number BSTR m_sPeersName; //peer name BOOL m_bCallbackRequested; //callback requested from peer? SPhoneCBState m_CallbackRequestState; //status of callback request BOOL m_bCallbackOnBusy; //callback on busy signaling requested? BOOL m_bCallbackOnBusySignaled; //callback on busy has been signaled in between, awaiting no more signaling } CLMgrCallbackListItem; typedef struct { BSTR m_sPeerNumber; //number that is now free again BSTR m_sPeerName; //name that is now free again } CLMgrCallbackOnBusyNotifyDetails; typedef struct { unsigned long m_ulMessageId; BSTR m_sMessageText; BSTR m_sPeerName; DWORD m_dwPeerIpAddress; } CLMgrChatMsg; typedef struct { unsigned long m_ulMessageId; BSTR m_sPeerName; DWORD m_dwPeerIpAddress; } CLMgrChatMsgAck; typedef enum { ClMgr_EntityType_User = 0, ClMgr_EntityType_Group = 1, ClMgr_EntityType_GlobalPhoneBookEntry = 2, ClMgr_EntityType_PersonalPhoneBookentry = 3, ClMgr_EntityType_Site = 4, } ClMgrEntityType; typedef struct { ClMgrEntityType m_eType; int m_iSiteID; int m_iEntityID; } CLMgrQualifiedEntityID; [ object, uuid(f8e552f5-4c00-11d3-80bc-00105a653379), helpstring("IClientLine2 Interface"), pointer_default(unique) ] interface IClientLine2 : IUnknown { /* * hook up and start dialing or pick up incoming call */ [helpstring("method HookOff")] HRESULT HookOff(); /* * hook on, put down telephone receiver after connection has been * disconnected */ [helpstring("method HookOn")] HRESULT HookOn(); /* * Press hook (hook on, and if handset is offhook, hook off again) */ [helpstring("method PressHook")] HRESULT PressHook(); /* * dial given dialstring, or send that string as DTMF signal */ [helpstring("method Dial")] HRESULT Dial([in] BSTR dialstring); /* * Action from client: set an active line on hold, does not * activate an other line * calls state machine */ [helpstring("method Hold")] HRESULT Hold([in] int HoldMusic); /* * Set a line on hold back to active, does not automatically set an * other active line on hold */ [helpstring("method Activate")] HRESULT Activate(); /* * line is alerting: connect in direct call mode */ [helpstring("method DirectCall")] HRESULT DirectCall(); /* * Add this line to a conference / connection on given line * (pConferenceLine). If connection on pConferenceLine was not yet * a conference, it will be transferred into a conference. This * line will be disconnected afterwards. */ [helpstring("method JoinConference")] HRESULT JoinConference([in] IClientLine2* pIConferenceLine); /* * Transfer the connection from this line to line given in * pTargetLine. Both lines will be disconnected, and both peers * will be connected afterwards. */ [helpstring("method TransferCall")] HRESULT TransferCall([in] IClientLine2* pITargetLine); /* * Forward an established or incoming call to a specified dialnumber */ [helpstring("method ForwardCall")] HRESULT ForwardCall([in] BSTR dialstring); /* * get state of that line */ [helpstring("method GetState")] HRESULT GetState([out] CLMgrLineStates *piState); /* * get details of that line */ [helpstring("method GetDetails")] HRESULT GetDetails([out] CLMgrLineDetails *pDetails); /* * get details of last call on that line */ [helpstring("method GetLastCallDetails")] HRESULT GetLastCallDetails([out] CLMgrCallDetails *pDetails); }; [ object, uuid(f8e552f6-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgr2 Interface"), pointer_default(unique) ] interface IClientLineMgr2 : IUnknown { /* !!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!! */ [helpstring("method Init")] HRESULT Init([in] BSTR ServerName, [out] IClPBX** ppIClPbx); /* !!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!! */ [helpstring("method ReInit")] HRESULT ReInit([out] IClPBX** ppIClPbx, [out] IClUser** ppIClUser); /* * Check whether it is a PBX line manager or a TAPI line manager */ [helpstring("method GetLineManagerType")] HRESULT GetLineManagerType([out] SClLineManagerType *pLineManagerType); /* * Get number of TAPI lines */ [helpstring("method GetTapiLineCount")] HRESULT GetTapiLineCount([out] int* piTapiLineCount); /* * Get info about certain TAPI line */ [helpstring("method GetTapiLineInfo")] HRESULT GetTapiLineInfo([in] int iTapiLine, [out] BSTR *psTapiLineName, [out] DWORD *pTapiLineId); /* * Register watchdog timeout * If client does not report in time, the line manager will terminate automatically */ [helpstring("method RegisterServiceWatchdog")] HRESULT RegisterServiceWatchdog([in] DWORD timeout); /* * Get number of configured MSNs from TAPI line manager */ [helpstring("method GetTapiMSNCount")] HRESULT GetTapiMSNCount([out] int* piTapiMsnCount); /* * Get configured MSN from TAPI */ [helpstring("method GetTapiMSN")] HRESULT GetTapiMSN([in] int iMsnNo, [out] BSTR *psTapiMsn); /* !!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!! */ [helpstring("method RegisterUser")] HRESULT RegisterUser([in] BSTR PbxUserName, [out] IClUser** ppIClUser, [out] unsigned long* pulUserId, [in, out] unsigned long* pMaxUsers, [out, size_is(*pMaxUsers), length_is(*pNumReturned)] BSTR* pszPBXUser, [out] unsigned long* pNumReturned); /* * Register a secondary user on the PBX, return an IClUser * interface pointer to allow the client access to the user * configuration data * Authentication will be done based on given NT user account / * password */ [helpstring("method RegisterSecondaryUser")] HRESULT RegisterSecondaryUser([in] BSTR PbxUserName, [in] BSTR NtUserName, [in] BSTR NtPassword, [out] IClUser** ppIClUser, [out] unsigned long* pulUserId); /* !!! depcreated function! Use IClientLineMgrDisp::ReleaseUserEx !!! */ [helpstring("method ReleaseUser")] HRESULT ReleaseUser([in] unsigned long ulUserId); /* * Get number of lines */ [helpstring("method GetLineCount")] HRESULT GetLineCount([out] int* piLineCount); /* * Get pointer to specified line object */ [helpstring("method GetLine")] HRESULT GetLine([in] int iLineNumber, [out] IClientLine2** ppIClientLine); /* * Fill in pointer array for all line objects */ [helpstring("method GetAllLines")] HRESULT GetAllLines([in] int iSizeOfArray, [out, size_is(iSizeOfArray)] IClientLine2** ppIClientLines); /* * select a specified line */ [helpstring("method SelectLine")] HRESULT SelectLine([in] IClientLine2* pIClientLine, BOOL bAutoHookOff); /* * select a specified line */ [helpstring("method SelectLine")] HRESULT SelectLineByNumber([in] int LineNumber, BOOL bAutoHookOff); /* * get the selected line, return pointer to line object */ [helpstring("method GetSelectedLine")] HRESULT GetSelectedLine([out] IClientLine2** ppIClientLine, [out] int* piLineNumber); /* * get state of all lines */ [helpstring("method GetStates")] HRESULT GetStates([in] int iSizeOfArray, [out, size_is(iSizeOfArray)] CLMgrLineStates *piStates); /* * register thread / window for window messages */ [helpstring("method RegisterMessageTarget")] HRESULT RegisterMessageTarget([in] DWORD hWnd, [in] DWORD dwThreadId); /* * unregister thread / window for window messages */ [helpstring("method UnRegisterMessageTarget")] HRESULT UnRegisterMessageTarget([in] DWORD hWnd, [in] DWORD dwThreadId); /* * get capabilities from Line Manager */ [helpstring("method GetCapabilites")] HRESULT GetCapabilites([out] CLMgrCapabilities *pCapabilities); /* * Play soundfile using our mediastreaming */ [helpstring("method PlaySoundFile")] HRESULT PlaySoundFile([in] SClDataLocations Location, [in] BSTR sFileName, [in] BOOL bPlayLoop, [in] int iLoopInterval, [in] DWORD dwVolume); /* * set wave endpoint volume level (percent, amplification in relation to windows wave output) * the value will be changed and stored in registry * running wave output will not be stopped temporary */ [helpstring("method SetWaveEndpointLevel")] HRESULT SetWaveEndpointLevel([in] DWORD dwVolume, [in] BOOL bSaveToConfiguration); /* * set wave endpoint ringing level (percent, amplification in relation to windows wave output) * the value will be changed and stored in registry * running wave output will not be stopped temporary */ [helpstring("method SetWaveEndpointRingingLevel")] HRESULT SetWaveEndpointRingingLevel([in] DWORD dwVolume, [in] BOOL bSaveToConfiguration); /* * Stop Play soundfile */ [helpstring("method StopPlaySoundFile")] HRESULT StopPlaySoundFile(); /* * Record soundfile using our mediastreaming */ [helpstring("method RecordSoundFile")] HRESULT RecordSoundFile([in] SClDataLocations Location, [in] BSTR sFileName); /* * Stop Record soundfile */ [helpstring("method StopRecordSoundFile")] HRESULT StopRecordSoundFile(); /* * get line managers version */ [helpstring("method GetVersion")] HRESULT GetVersion([out] CLMGRVERSIONINFO *pdvi); /* * Trigger line manager for reloading local settings (SoundWizard, ...) */ [helpstring("method ReloadLocalSettings")] HRESULT ReloadLocalSettings(); /* * enable / disable wave devices */ [helpstring("method SwitchWaveDevices")] HRESULT SwitchWaveDevices([in] BOOL EnableMicro, [in] BOOL EnableSpeaker); /* * get enable / disable state of wave devices */ [helpstring("method GetWaveDevicesStates")] HRESULT GetWaveDevicesStates([out] BOOL *MicroEnabled, [out] BOOL *SpeakerEnabled); /* * check whether connection to server is up * returns S_OK if connection is up * retruns S_FALSE if connection is broken */ [helpstring("method IsServerUp")] HRESULT IsServerUp(); /* * enable / disable notification sounds */ [helpstring("method EnableNotificationSounds")] HRESULT EnableNotificationSounds([in] BOOL bEnable); /* * enable / disable compatibility mode for soundwizard * TRUE: release COM port, release all wave devices -> allow SoundWizard full access to all resources * FALSE: reload local settings, start hookoff monitoring, reallocate all wave devices */ [helpstring("method SetHandleHookEvents")] HRESULT SetHandleHookEvents([in] BOOL bEnable); /* * get details of current group notification */ [helpstring("method GetGroupNotificationDetails")] HRESULT GetGroupNotificationDetails([out] CLMgrGroupNotificationDetails *pDetails); /* * pickup group call on specified line * line = -1 if line does not matter -> select first inactive line */ [helpstring("method PickupGroupNotificationCall")] HRESULT PickupGroupNotificationCall([in] int LineNumber); /* * get state of all namekeys */ [helpstring("method GetNamekeyStates")] HRESULT GetNamekeyStates([in] int iSizeOfArray, [out, size_is(iSizeOfArray)] CLMgrNameKeyStates *piStates); /* * get state of specified namekey */ [helpstring("method GetNamekeyState")] HRESULT GetNamekeyState([in] int iNameKey, [out] CLMgrNameKeyStates *piState); /* * trigger client line manager to send CLMgrClientShutDownRequest to all its clients */ [helpstring("method SendClientShutDownRequest")] HRESULT SendClientShutDownRequest(); }; [ object, uuid(f8e55321-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx Interface"), pointer_default(unique) ] interface IClientLineMgrEx : IUnknown { /* * get list of names of available wave devices * client will write names to be used for handset and ringing to configuration section in registry * list is array of structs: * struct CLMgrSoundDeviceDescription * { * BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel * BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer * BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder * BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel * BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel * }; * * write selected devices to registry: * HandsetWaveDevicePlayer = m_bstrDeviceIdPlayer of handset device * HandsetWaveDeviceRecorder = m_bstrDeviceIdRecorder of handset device * SpeakersWaveDevicePlayer = m_bstrDeviceIdPlayer of speakers device * SpeakersWaveDeviceRecorder= m_bstrDeviceIdRecorder of speakers device (obsolete right now, but might be useful in future for handsfree speaking) */ [helpstring("method GetAvailableWaveDevices")] HRESULT GetAvailableWaveDevices([in, out] unsigned long* pMaxDevices, [out, size_is(*pMaxDevices), length_is(*pNumReturned)] CLMgrSoundDeviceDescription* pSoundDevices, [out] unsigned long* pNumReturned); /* * get windows default wave devices for play and record * this device will be used by client line manager if no wave device was configured by SwyxIt! */ [helpstring("method GetDefaultWaveDevices")] HRESULT GetDefaultWaveDevices([out] CLMgrSoundDeviceDescription* pPlayerDevice, [out] CLMgrSoundDeviceDescription* pRecorderDevice); /* * enable / disable OpenListening (handset micro + desktop speaker) and handsfree speaking (desktop micro and speaker) */ [helpstring("method SelectSpeakers")] HRESULT SelectSpeakers([in] BOOL OpenListening, [in] BOOL Handsfree); /* * get state of OpenListening (handset micro + desktop speaker) and handsfree speaking (desktop micro and speaker) */ [helpstring("method GetSelectedSpeakers")] HRESULT GetSelectedSpeakers([out] BOOL *OpenListening, [out] BOOL *Handsfree); /* * Set number of lines */ [helpstring("method SetLineCount")] HRESULT SetLineCount([in] int iLineCount); /* * Save Mixer Profile to registry * set iReserved to "0" */ [helpstring("method SaveMixerSettings")] HRESULT SaveMixerSettings([in] int iReserved); /* * Restore Mixer Profile from registry * set iReserved to "0" */ [helpstring("method RestoreMixerSettings")] HRESULT RestoreMixerSettings([in] int iReserved); } [ object, uuid(f8e55342-4c00-11d3-80bc-00105a653379), helpstring("IClientLineEx Interface"), pointer_default(unique) ] interface IClientLineEx : IUnknown { /* * hook off silent: same as HookOff, but without dial and busy sound (used for auto redial by client) */ [helpstring("method HookOffSilent")] HRESULT HookOffSilent(); /* * request callback: we will appear in peers caller list with state SPCSAskedForCallback * and in our own callback request list */ [helpstring("method RequestCallback")] HRESULT RequestCallback(); /* * request callback on busy: peer is busy, server will notify us as soon as peer is no more busy * peer will not get any info about RequestCallbackOnBusy */ [helpstring("method RequestCallbackOnBusy")] HRESULT RequestCallbackOnBusy(); /* * record current conversation * file name will be build of own extension, peer extension / name and timestamp * location depends on configuration * depending on configuration, inquiry calls will be recorded into same file or different file */ [helpstring("method StartRecording")] HRESULT StartRecording(); /* * stop recording of current conversation */ [helpstring("method StopRecording")] HRESULT StopRecording(); /* * get details of that line */ [helpstring("method GetDetailsEx")] HRESULT GetDetailsEx([out] CLMgrLineDetailsEx *pDetails); } [ object, uuid(f8e55369-4c00-11d3-80bc-00105a653379), helpstring("IClientLineEx2 Interface"), pointer_default(unique) ] interface IClientLineEx2 : IUnknown { /* * get details of that line */ [helpstring("method GetDetailsEx2")] HRESULT GetDetailsEx2([out] CLMgrLineDetailsEx2 *pDetails); /* * get details of last call on that line */ [helpstring("method GetLastCallDetailsEx")] HRESULT GetLastCallDetailsEx([out] CLMgrCallDetailsEx *pDetails); } [ object, uuid(f8e55373-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx2 Interface"), pointer_default(unique) ] interface IClientLineMgrEx2 : IUnknown { /* * This method will resolve a phone number to a name * * Input: Number * Output: Name. * If the number can be resolved, *pName is the resolved name and the HRESULT is S_OK. * If the number cannot be resolved, *pName is set to NULL and the HRESULT is S_FALSE. * If Number is NULL or pName is NULL, HRESULT will be E_INVALIDARG */ [helpstring("method ResolveNumber")] HRESULT ResolveNumber([in] BSTR Number, [out] BSTR *pName); /* * This method will convert a phone number to a different format * * requested style: * * typedef enum * { * PubCLMgrNumberStyleFull, //e.g. 0004923147770 or 0023147770 * PubCLMgrNumberStylePlain, //e.g. 4923147770 or 23147770 * PubCLMgrNumberStyleCanonical //e.g. +49 (231) 47770 or +49 (231) 4777-0 * PubCLMgrNumberStyleFullPublic //e.g. 004923147770 or 023147770 * } PubCLMgrNumberStyle; * * Full number: 0023147770 * Canonical number: +49 (231) 4777-0 or +49 (231) 47770 (the extension cannot be detected automatically) */ [helpstring("method ConvertNumber")] HRESULT ConvertNumber([in] DWORD Style, [in] BSTR NumberFrom, [out] BSTR *pNumberTo); /* * This method will tell line manager to reload the personal phonebook. * The personal phonebook will be used for name resolution too. * This method is called by phonebook component */ [helpstring("method ReloadPersonalPhonebook")] HRESULT ReloadPersonalPhonebook(); } [ object, uuid(f8e553a8-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx3 Interface"), pointer_default(unique) ] interface IClientLineMgrEx3 : IUnknown { /* !!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!! */ [helpstring("method InitEx")] HRESULT InitEx([in] BSTR ServerName, [in] BSTR BackupServerName, [out] IClPBX** ppIClPbx); /* * Get Details about server addresses retreived via AutoDetection * BSTR *psServer: primary server to be used (resolved name, ip address if name could not be resolved) * BSTR *psBackupServer: backup server to be used (resolved name, ip address if name could not be resolved) * BOOL *pbAutoDetectionEnabled: TRUE if AutoDetection API available, FALSE if we could not use AutoDetection (Windows 9x, NT4) * BOOL *pbServerAvailable: TRUE if we retreived server addresses via AutoDetection); */ [helpstring("method GetServerFromAutoDetection")] HRESULT GetServerFromAutoDetection([out] BSTR *psServer, [out] BSTR *psBackupServer, [out] BOOL *pbAutoDetectionEnabled, [out] BOOL *pbServerAvailable); /* * Get Logon Details about current session * BSTR *psServer: server we are logged on to; if NULL, we are not initialized * BSTR *psUser: user name we used; if NULL, we are not logged on */ [helpstring("method GetLogonInfo")] HRESULT GetLogonInfo([out] BSTR *psServer, [out] BSTR *psUser); } [ object, uuid(f8e553dc-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx4 Interface"), pointer_default(unique) ] interface IClientLineMgrEx4 : IUnknown { /* * Create new conference * If iConferenceLine == -1, active line or first line on hold will become conference line. * Otherwise iConferenceLine indicicates the line that will become the conference line * The chosen line must be active or on hold. */ [helpstring("method CreateConference")] HRESULT CreateConference([in] int iConferenceLine); /* * Add all active and onhold line to a conference. * If bCreateConference==TRUE, a new conference will be created if there is currently no conference */ [helpstring("method JoinAllToConference")] HRESULT JoinAllToConference([in] BOOL bCreateConference); /* * Conference established or in creation? * If bCreateConference==TRUE, a new conference will be created if there is currently no conference */ [helpstring("method ConferenceRunning")] HRESULT ConferenceRunning([out] BOOL *pbConferenceRunning); /* * Get index and pointer of conference line; returns S_FALSE if no conference running */ [helpstring("method GetConferenceLine")] HRESULT GetConferenceLine([out] IClientLine2** ppIClientLine, [out] int* piLineNumber); /* * Add requested line to running conference */ [helpstring("method JoinLineToConference")] HRESULT JoinLineToConference([in] int iLine); } [ object, uuid(f8e553ee-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx5 Interface"), pointer_default(unique) ] interface IClientLineMgrEx5 : IUnknown { /* * This method will be called by SwyxIt!.exe when the state of an action area has changed. * The new action area state dwActionAreaState will be cached by the client line manager. * The client line manager will inform the PlugIns about the new action area state by calling * IClientHandsetAddIn::SkinActionAreaStateChanged(). * All line manager clients will receive the event CLMgrSkinActionAreaStateChangedMessage, lParam will contain the id of the action area that has changed. * Some buttons (commands) (line, speed dial) are indexed (line 1..line n). If command is not indexed, set dwButtonId to 0. First button id is 1! * If command is received for indexed button but dwButtonId is 0, it is unknown if one ore more buttons of that command have changed. */ [helpstring("method SkinSetActionAreaState")] HRESULT SkinSetActionAreaState([in] DWORD dwCommandId, [in] DWORD dwButtonId, [in] DWORD dwActionAreaState); /* * This method will be called by SwyxIt!.exe when an information details has changed. * The new information area detail InfoDetail will be cached by the client line manager. * The client line manager will inform the PlugIns about the new information area detail by calling * IClientHandsetAddIn::SkinInfoDetailChanged(). * All line manager clients will receive the event CLMgrSkinInfoDetailChangedMessage. lParam will contain the id of the information detail that has changed. */ [helpstring("method SkinSetInfoDetail")] HRESULT SkinSetInfoDetail([in] DWORD dwDetailIndex, [in] BSTR InfoDetail); } [ object, uuid(f8e55407-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx6 Interface"), pointer_default(unique) ] interface IClientLineMgrEx6 : IUnknown { /* * * Retreive list of all open callback entries (both callback on busy / callback request) * * typedef struct * { * unsigned long m_CallbackRequestId; //unique id * unsigned long m_CallbackOnBusyId; //unique id * SClTime m_Timestamp; //timestamp when event occured * BSTR m_PeersNumber; //peer number * BSTR m_PeersName; //peer name * BOOL m_bCallbackRequested; //callback requested from peer? * SPhoneCBState m_CallbackRequestState; //status of callback request * BOOL m_bCallbackOnBusy; //callback on busy signaling requested? * BOOL m_bCallbackOnBusySignaled; //callback on busy has been signaled in between, awaiting no more signaling * } CLMgrCallbackListItem; * */ [helpstring("method GetCallbackList")] HRESULT GetCallbackList([in, out] unsigned long* pMaxCallbackListItems, [out, size_is(*pMaxCallbackListItems), length_is(*pNumReturned)] CLMgrCallbackListItem* pCallbackList, [out] unsigned long* pNumReturned); /* * Remove single entry from callback list * */ [helpstring("method DeleteCallbackListItem")] HRESULT DeleteCallbackListItem([in] unsigned long CallbackRequestId, [in] unsigned long CallbackOnBusyId); /* * Remove all entries from callback list * */ [helpstring("method DeleteCallbackList")] HRESULT DeleteCallbackList(); /* * get details of current callback on busy notification * typedef struct * { * BSTR m_sPeerNumber; //number that is now free again * BSTR m_sPeerName; //name that is now free again * } CLMgrCallbackOnBusyNotifyDetails; */ [helpstring("method GetCallbackOnBusyNotifyDetails")] HRESULT GetCallbackOnBusyNotifyDetails([out] CLMgrCallbackOnBusyNotifyDetails *pDetails); /* * pickup callback on busy -> retry calling on specified line * line = -1 if line does not matter -> select first inactive line */ [helpstring("method PickupCallbackOnBusyNotification")] HRESULT PickupCallbackOnBusyNotification([in] int LineNumber); /* * reject callback on busy -> do not retry calling, stop notification */ [helpstring("method RejectCallbackOnBusyNotification")] HRESULT RejectCallbackOnBusyNotification(); /* * LineNumber=0..n: dial given dialstring on this line if free line * LineNumber=-1: dial given dialstring on any free line * If chosen line or selected line is active, an inactive line will be selected automatically before dialing * function call will be handled asynchronous, return code S_OK does not guarantee success */ [helpstring("method SimpleDial")] HRESULT SimpleDial([in] BSTR dialstring, [in] int LineNumber); /* * request callback on busy: peer is busy, server will notify us as soon as peer is no more busy * peer will not get any info about RequestCallbackOnBusy * The peer number is important here; the name will be used for display during callback signaling */ [helpstring("method RequestCallbackOnBusy")] HRESULT RequestCallbackOnBusy([in] BSTR PeerNumber, [in] BSTR PeerName); /* * Dial own number for entering voicemail remote inquiry menu */ [helpstring("method VoicemailRemoteInquiry")] HRESULT VoicemailRemoteInquiry(); /* * Start CTI pairing as master; if dwPeerIP!=0 this device is preferred * */ [helpstring("method StartCtiPairing")] HRESULT StartCtiPairing([in] DWORD dwPeerIP); /* * Cancel CTI pairing as master * */ [helpstring("method CancelCtiPairing")] HRESULT CancelCtiPairing(); /* * Accept CTI pairing as slave * */ [helpstring("method AcceptCtiPairing")] HRESULT AcceptCtiPairing(); /* * Reject CTI pairing as slave * */ [helpstring("method RejectCtiPairing")] HRESULT RejectCtiPairing(); /* * Release CTI pairing as client or slave * */ [helpstring("method ReleaseCtiPairing")] HRESULT ReleaseCtiPairing(); /* * Return current CTI pairing state * * typedef enum * { * CtiSessNone=-1, * CtiSessIdle=0, //no cti activity * CtiSessMasterPairingRequested, //CTI master has requested pairing * CtiSessSlavePairingRequested, //CTI slave has received pairing request * CtiSessMasterPaired, //CTI master has established pairing * CtiSessSlavePaired, //CTI slave has established pairing * CtiSessMaxStates * } CtiSessionStates; * */ [helpstring("method GetCtiPairingState")] HRESULT GetCtiPairingState([out] unsigned long *pulState); /* * Return current CTI pairing peer name and IP address * */ [helpstring("method GetCtiPairing")] HRESULT GetCtiPairing([out] DWORD *pdwOwnIP, [out] DWORD *pdwPeerIP, [out] BSTR *pPeerName); /* !!! depcreated function! Use IClientLineMgrDisp::RegisterUserEx !!! */ [helpstring("method RegisterUserEx")] HRESULT RegisterUserEx([in] BSTR PbxUserName, [in] BOOL bCtiMaster, [out] IClUser** ppIClUser, [out] unsigned long* pulUserId, [in, out] unsigned long* pMaxUsers, [out, size_is(*pMaxUsers), length_is(*pNumReturned)] BSTR* pszPBXUser, [out] unsigned long* pNumReturned); /* !!! depcreated function! */ [helpstring("method UnInit")] HRESULT UnInit(); /* * Tells Client if line manager is interested in action area states (any plugin needs it or enabled via registry for SDK clients) */ [helpstring("method WantSkinActionAreaStates")] HRESULT WantSkinActionAreaStates([out] BOOL *pbWantsActionAreaStates); /* * Tells Client if line manager is interested in skin info details (any plugin needs it or enabled via registry for SDK clients) */ [helpstring("method WantSkinInfoDetails")] HRESULT WantSkinInfoDetails([out] BOOL *pbWantsInfoDetails); /* * Register as receiver for chat messages * The line manager will create a message queue for each interested client. * When a new message is available, the line manager will send the CLMgrChatMessage message, * the client then can retreive the message. * A client that has displayed the message should acknowledge the received message. * An acknlowledged message will be signaled to the sender as a CLMgrChatMessageAck message * When no longer interested in chat messages, the client should release the queue by calling UnRegisterChatMessageReader */ [helpstring("method RegisterChatMessageReader")] HRESULT RegisterChatMessageReader([out] DWORD *dwReaderID); /* * Send chat message. m_sPeerName is the username on the IPPBX server * If m_dwPeerIpAddress==0, the message will be sent to all logged on devices of this user, * otherwise to the device with the given IP address * * typedef struct * { * unsigned long m_ulMessageId; * BSTR m_sMessageText; * BSTR m_sPeerName; * DWORD m_dwPeerIpAddress; * } CLMgrChatMsg; */ [helpstring("method SendChatMessage")] HRESULT SendChatMessage([in] CLMgrChatMsg ChatMessage); /* * Read chat message. m_sPeerName is the originators username on the IPPBX server * m_dwPeerIpAddress the IP address of the originator * * typedef struct * { * unsigned long m_ulMessageId; * BSTR m_sMessageText; * BSTR m_sPeerName; * DWORD m_dwPeerIpAddress; * } CLMgrChatMsg; */ [helpstring("method ReadChatMessage")] HRESULT ReadChatMessage([in] DWORD dwReaderID, [out] CLMgrChatMsg *pChatMessage); /* * Acknowledge read chat message, use m_ulMessageId from the message to be confirmed */ [helpstring("method AcknowledgeChatMessage")] HRESULT AcknowledgeChatMessage([in] CLMgrChatMsgAck ChatMessageAcknowledge); /* * UnRegister as receiver for chat messages */ [helpstring("method UnRegisterChatMessageReader")] HRESULT UnRegisterChatMessageReader([in] DWORD dwReaderID); } [ object, uuid(f8e553e0-4c00-11d3-80bc-00105a653379), helpstring("IClientLineEx3 Interface"), pointer_default(unique) ] interface IClientLineEx3 : IUnknown { /* * enable / disable line for incoming calls */ [helpstring("method Enable")] HRESULT Enable([in] BOOL bEnable); /* * get details of that line */ [helpstring("method GetDetailsEx3")] HRESULT GetDetailsEx3([in, out] CLMgrLineDetailsEx3 *pDetails); /* * get details of last call on that line */ [helpstring("method GetLastCallDetailsEx3")] HRESULT GetLastCallDetailsEx3([in, out] CLMgrCallDetailsEx3 *pDetails); } [ object, uuid(f8e55408-4c00-11d3-80bc-00105a653379), helpstring("IClientLineEx4 Interface"), pointer_default(unique) ] interface IClientLineEx4 : IUnknown { /* * request callback depending on line state * if destination is busy or if it is a second call, we will do a callback on busy * in all other cases we will request a callback */ [helpstring("method RequestCallbackAuto")] HRESULT RequestCallbackAuto(); /* * get details of that line */ [helpstring("method GetDetailsEx4")] HRESULT GetDetailsEx4([in, out] CLMgrLineDetailsEx4 *pDetails); } [ object, uuid(f8e55474-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx7 Interface"), pointer_default(unique) ] interface IClientLineMgrEx7 : IUnknown { /* * get details of current group notification */ [helpstring("method GetGroupNotificationDetailsEx")] HRESULT GetGroupNotificationDetailsEx([out] CLMgrGroupNotificationDetailsEx *pDetails); /* * pickup group call on specified line * line = -1 if line does not matter -> select first inactive line * CallRefNum=0 -> primary notification call; CallRefNum!=0 additional notification call, signaled only on spee dial: unique call ID */ [helpstring("method PickupGroupNotificationCallEx")] HRESULT PickupGroupNotificationCallEx([in] int LineNumber, [in] unsigned long CallRefNum); /* * get details of notification call signaled on specified namekey */ [helpstring("method GetNotificationCallOnNamekey")] HRESULT GetNotificationCallOnNamekey([in] int iNameKey, [out] CLMgrGroupNotificationDetailsEx *pDetails); /* * pickup notification call that is signaled on certain speed dial * line = -1 if line does not matter -> select first inactive line */ [helpstring("method PickupNotificationCallFromNamekey")] HRESULT PickupNotificationCallFromNamekey([in] int iNameKey, [in] int LineNumber); } [ object, uuid(f8e5549a-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx8 Interface"), pointer_default(unique) ] interface IClientLineMgrEx8 : IUnknown { /* * set "do what I mean" volume */ [helpstring("method SetVolume")] HRESULT SetVolume([in] int iVolume); /* * get "do what I mean" volume */ [helpstring("method GetVolume")] HRESULT GetVolume([out] int *piVolume); /* * increment "do what I mean" volume */ [helpstring("method IncrementVolume")] HRESULT IncrementVolume(); /* * decrement "do what I mean" volume */ [helpstring("method DecrementVolume")] HRESULT DecrementVolume(); /* * set microphone level */ [helpstring("method SetMicLevel")] HRESULT SetMicLevel([in] int iVolume); /* * get microphone level */ [helpstring("method GetMicLevel")] HRESULT GetMicLevel([out] int *piVolume); /* * get audio mode * AudioModeIdle = 0, * AudioModeHandset, * AudioModeHeadset, * AudioModeHandsfreeListening, * AudioModeIntercom, * AudioModeRinging */ [helpstring("method GetAudioMode")] HRESULT GetAudioMode([out] int *piAudioMode); /* * get list of names of available wave devices * client will write names to be used for handset and ringing to configuration section in registry * list is array of structs: typedef struct { BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel BOOL m_bIsDirectXSoundDevice; //device is DirectX sound device BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder BOOL m_bHasMixer; //associated mixer could be found BOOL m_bHasDxAudioRenderer; //sound device can be used for ringing BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel BSTR m_bstrMixerName; //name of associated mixer device BSTR m_bstrDxAudioRenderer; //name of associated DX Audio Renderer device (used for ringing only) BSTR m_bstrManufacturerId; //HID Manufacturer ID BSTR m_bstrsProductId; //HID Product ID unsigned long m_dwManufacturerId; //HID Manufacturer ID unsigned long m_dwProductId; //HID Product ID BOOL m_bIsHandset; //device is a well known handset BOOL m_bIsHeadset; //device is a well known headset BOOL m_bIsSpeaker; //device is a well known device with speaker BOOL m_bHookSupportUSB; //device supports USB hook switch BOOL m_bHookSupportComPort; //device supports COM port hook switch BOOL m_bHookSupportGamePort; //device supports Game port hook switch BOOL m_bHookSupportBluetooth; //device supports bluetooth hook switch BOOL m_bIsWellKnownDevice; //device is well known and does not need calibration } CLMgrSoundDeviceDescriptionEx; * * write selected devices to registry: * HandsetWaveDevicePlayer = m_bstrDeviceIdPlayer of handset device * HandsetWaveDeviceRecorder = m_bstrDeviceIdRecorder of handset device * SpeakersWaveDevicePlayer = m_bstrDeviceIdPlayer of speakers device * SpeakersWaveDeviceRecorder= m_bstrDeviceIdRecorder of speakers device (obsolete right now, but might be useful in future for handsfree speaking) */ [helpstring("method GetAvailableWaveDevicesEx")] HRESULT GetAvailableWaveDevicesEx([in, out] unsigned long* pMaxDevices, [out, size_is(*pMaxDevices), length_is(*pNumReturned)] CLMgrSoundDeviceDescriptionEx* pSoundDevices, [out] unsigned long* pNumReturned); /* * set voice devices to be used for sound during sound wizard run * calling this method is only allowed when we are in Soundwizard compatibility mode * list is array of structs: typedef struct { BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel BOOL m_bIsDirectXSoundDevice; //device is DirectX sound device BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder BOOL m_bHasMixer; //associated mixer could be found BOOL m_bHasDxAudioRenderer; //sound device can be used for ringing BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel BSTR m_bstrMixerName; //name of associated mixer device BSTR m_bstrDxAudioRenderer; //name of associated DX Audio Renderer device (used for ringing only) BSTR m_bstrManufacturerId; //HID Manufacturer ID BSTR m_bstrsProductId; //HID Product ID unsigned long m_dwManufacturerId; //HID Manufacturer ID unsigned long m_dwProductId; //HID Product ID BOOL m_bIsHandset; //device is a well known handset BOOL m_bIsHeadset; //device is a well known headset BOOL m_bIsSpeaker; //device is a well known device with speaker BOOL m_bHookSupportUSB; //device supports USB hook switch BOOL m_bHookSupportComPort; //device supports COM port hook switch BOOL m_bHookSupportGamePort; //device supports Game port hook switch BOOL m_bHookSupportBluetooth; //device supports bluetooth hook switch BOOL m_bIsWellKnownDevice; //device is well known and does not need calibration } CLMgrSoundDeviceDescriptionEx; */ [helpstring("method UseWaveDevices")] HRESULT UseWaveDevices([in] CLMgrSoundDeviceDescriptionEx *pVoiceDevice, [in] CLMgrSoundDeviceDescriptionEx *pHandsFreeDevice, [in] CLMgrSoundDeviceDescriptionEx *pRingingDevice, [in] BOOL bConfigure, [in] BOOL bPnPEnable); /* * set voice devices to be used for sound during sound wizard run * calling this method is only allowed when we are in Soundwizard compatibility mode * list is array of structs: typedef struct { BSTR m_bstrVisibleDeviceName; //friendly name of sound device, as displayed in control panel BOOL m_bIsDirectXSoundDevice; //device is DirectX sound device BOOL m_bHasPlayer; //sound device can playback sound, device id given in m_bstrDeviceIdPlayer BOOL m_bHasRecorder; //sound device can record sound, device id given in m_bstrDeviceIdRecorder BOOL m_bHasMixer; //associated mixer could be found BOOL m_bHasDxAudioRenderer; //sound device can be used for ringing BSTR m_bstrDeviceIdPlayer; //devive id for playback: client line manager will use this id for opening sound channel BSTR m_bstrDeviceIdRecorder; //devive id for record: client line manager will use this id for opening sound channel BSTR m_bstrMixerName; //name of associated mixer device BSTR m_bstrDxAudioRenderer; //name of associated DX Audio Renderer device (used for ringing only) BSTR m_bstrManufacturerId; //HID Manufacturer ID BSTR m_bstrsProductId; //HID Product ID unsigned long m_dwManufacturerId; //HID Manufacturer ID unsigned long m_dwProductId; //HID Product ID BOOL m_bIsHandset; //device is a well known handset BOOL m_bIsHeadset; //device is a well known headset BOOL m_bIsSpeaker; //device is a well known device with speaker BOOL m_bHookSupportUSB; //device supports USB hook switch BOOL m_bHookSupportComPort; //device supports COM port hook switch BOOL m_bHookSupportGamePort; //device supports Game port hook switch BOOL m_bHookSupportBluetooth; //device supports bluetooth hook switch BOOL m_bIsWellKnownDevice; //device is well known and does not need calibration } CLMgrSoundDeviceDescriptionEx; */ [helpstring("method GetUsedWaveDevices")] HRESULT GetUsedWaveDevices([out] CLMgrSoundDeviceDescriptionEx *pVoiceDevice, [out] CLMgrSoundDeviceDescriptionEx *pHandsFreeDevice, [out] CLMgrSoundDeviceDescriptionEx *pRingingDevice); /* * Check if we need sound wizard */ [helpstring("method IsAudioConfigured")] HRESULT IsAudioConfigured([out] BOOL *pbConfigured, [out] BOOL *pbIsPnPDevice, [out] BOOL *pbPnPDevicePresent); /* * Manually initiate audio Plug and Play */ [helpstring("method StartAudioPnP")] HRESULT StartAudioPnP([in] BOOL bForcePnPDevice); /* * set audio mode for sound wizard mode * calling this method is only allowed when we are in Soundwizard compatibility mode * AudioModeIdle = 0, * AudioModeHandset, * AudioModeHeadset, * AudioModeHandsfreeListening, * AudioModeIntercom, * AudioModeRinging */ [helpstring("method SetAudioMode")] HRESULT SetAudioMode([in] int iAudioMode); /* * enable / disable microphone adjustment mode * calling this method is only allowed when we are in Soundwizard compatibility mode */ [helpstring("method SetMicAdjustMode")] HRESULT SetMicAdjustMode([in] BOOL bEnable); /* * Play soundfile using DirectSound the playback is not handled with our voice media streaming and is not sent to the peer via RTP */ [helpstring("method PlaySoundFileDx")] HRESULT PlaySoundFileDx([in] BSTR sFileName, [in] BOOL bPlayLoop, [in] int iLoopInterval); /* * Stop Play soundfile using DirectSound */ [helpstring("method StopPlaySoundFileDx")] HRESULT StopPlaySoundFileDx(); /* * Check if soundfile can be played using DirectSound returns S_OK if file can be played, returns S_FALSE if file cannot be played */ [helpstring("method CheckSoundFileDx")] HRESULT CheckSoundFileDx([in] BSTR sFileName); /* * add trace module */ [helpstring("method AddTraceModule")] HRESULT AddTraceModule([in] BSTR sTraceModule, [out] int* piTraceModule); /* * trace line */ [helpstring("method TraceLine")] HRESULT TraceLine([in] int iTraceModule, [in] int iTraceLevel, [in] long ulThisPointer, [in] long ulConnectionId, [in] BSTR sTraceLine); /* get config buffer returns a variable sized data buffer associated with the user. Clients may use this buffer to store client specific configuration data MaxLen - maximum number of bytes which can be stored in given buffer pBuf - pointer to memory location where server returns the data. Maximunm available size is given in MaxLen pLenNeeded - If MaxLen is 0 or pBuf is NULL, function returns the necessary size here */ [helpstring("method GetConfigBuffer")] HRESULT GetConfigBuffer([in] unsigned long Maxlen, [out, size_is(Maxlen)] unsigned char* pBuf, [out] unsigned long* pLenNeeded); } [ object, uuid(f8e554ac-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx9 Interface"), pointer_default(unique) ] interface IClientLineMgrEx9 : IUnknown { /* * JournalAddInSupported * Checks if the line manager has loaded one or more Journal Add Ins * and writes TRUE to bSupported if it is so */ [helpstring("method JournalAddInSupported")] HRESULT JournalAddInSupported([out] BOOL *bSupported); /* * CreateJournalEntry * Used by clients to create a new journal entry * Passes its Parameters to all loaded Journal Add Ins */ [helpstring("method CreateJournalEntry")] HRESULT CreateJournalEntry([in] BSTR Subject, [in] BSTR Body, [in] long lDuration, [in] BSTR sCharging, [in] DATE StartDate, [in] BOOL bPopUp); /* * ContactAddInSupported * Checks if the line manager has loaded one or more Contact Add Ins * and writes TRUE to bSupported if it is so */ [helpstring("method ContactAddInSupported")] HRESULT ContactAddInSupported([out] BOOL *bSupported); /* * ShowContact * Used by clients to create a new contact * Passes its Parameters to all loaded Contact Add Ins */ [helpstring("method ShowContact")] HRESULT ShowContact([in] BSTR Number, [in] BSTR Name, [in] BOOL bCreateIfNotExists, [in] BOOL bPopUp); } [ object, uuid(f8e554bf-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx10 Interface"), pointer_default(unique) ] interface IClientLineMgrEx10 : IUnknown { /* * Play soundfile using DirectSound the playback is not handled with our voice media streaming and is not sent to the peer via RTP sFileName: full path bPlayLoop: play in loop? iLoopInterval: pause between loops in s iPosition: initial start position for playback in ms iDevice: 0 - Voice Device 1 - Handsfree / Intercom Device 2 - Ringing Device */ [helpstring("method PlaySoundFileDxEx")] HRESULT PlaySoundFileDxEx([in] BSTR sFileName, [in] BOOL bPlayLoop, [in] int iLoopInterval, [in] int iPosition, [in] BOOL bPercent, [in] BOOL bPauseImmediately, [in] int iDevice); /* * Pause play soundfile using DirectSound */ [helpstring("method PausePlaySoundFileDxEx")] HRESULT PausePlaySoundFileDxEx(); /* * Continue paused play soundfile using DirectSound */ [helpstring("method ContinuePlaySoundFileDxEx")] HRESULT ContinuePlaySoundFileDxEx(); /* * Stop Play soundfile using DirectSound */ [helpstring("method StopPlaySoundFileDxEx")] HRESULT StopPlaySoundFileDxEx(); /* * Rewind and play soundfile using DirectSound */ [helpstring("method RewindPlaySoundFileDxEx")] HRESULT RewindPlaySoundFileDxEx(); /* * Get position and length of currently played soundfile using DirectSound iPosition: current position for playback in ms iDuration: duration of currently played file in ms */ [helpstring("method GetPositionPlaySoundFileDxEx")] HRESULT GetPositionPlaySoundFileDxEx([out] int *piDuration, [out] int *piPosition, [out] int *piPercent); /* * Set position of currently played soundfile using DirectSound iPosition: new current position for playback in ms */ [helpstring("method SetPositionPlaySoundFileDxEx")] HRESULT SetPositionPlaySoundFileDxEx([in] int iPosition, [in] BOOL bPercent); /* * Move position of currently played soundfile using DirectSound iDelta: time difference (positive or negative) relative to the current position */ [helpstring("method SkipPositionPlaySoundFileDxEx")] HRESULT SkipPositionPlaySoundFileDxEx([in] int iDelta); } [ object, uuid(f8e554dc-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx11 Interface"), pointer_default(unique) ] interface IClientLineMgrEx11 : IUnknown { [propget, id(1), helpstring("property ClientConfig")] HRESULT ClientConfig([out, retval] IDispatch** ppVal); [helpstring("method GetTrialMode")] HRESULT GetTrialMode([out] int* pTrialMode, [out] int* pDaysLeft); } [ object, uuid(f8e55549-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx12 Interface"), pointer_default(unique) ] interface IClientLineMgrEx12 : IUnknown { /* * FulltextSearchAddInSupported * Checks if the line manager has loaded one or more Fulltext search Add Ins * and writes TRUE to bSupported if it is so */ [helpstring("method FulltextSearchAddInSupported")] HRESULT FulltextSearchAddInSupported([out] BOOL *bSupported); /* * This method will start a full text search in name or numbers in contacts * * Input: BSTR bstrName: Text fragment to be searched * BOOL bEnableSearchInNumbers: if set to TRUE, the search string will be searched in numbers, too, * BUT ONLY if it contains of solely digits. If there is just one non-digit character * in the search string, the search is carried out only in the contact's names, * as it will be if the variable is set to FALSE. * Output: Pointer to IDispatch* to receive the Search Result Collection. * */ [helpstring("method FulltextSearchInContacts")] HRESULT FulltextSearchInContacts([in] BSTR bstrSearchText, [in] BOOL bEnableSearchInNumbers, [out] IDispatch** ppSearchResultCollection); } [ object, uuid(f8e5554f-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx13 Interface"), pointer_default(unique) ] interface IClientLineMgrEx13 : IUnknown { [helpstring("method NeedsCoreAudioApiConfig")] HRESULT NeedsCoreAudioApiConfig([out] BOOL* bNeedsConfig); } [ object, uuid(f8e555f2-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEx14 Interface"), pointer_default(unique) ] interface IClientLineMgrEx14 : IUnknown { /* * get state of all namekeys */ [helpstring("method GetNamekeyStatesEx")] HRESULT GetNamekeyStatesEx([in] int iSizeOfArray, [out, size_is(iSizeOfArray)] CLMgrNameKeyStates *piStates, [in] int iSizeOfIdArray, [out, size_is(iSizeOfIdArray)] CLMgrQualifiedEntityID *pEntityIDs); /* * get state of specified namekey */ [helpstring("method GetNamekeyStateEx")] HRESULT GetNamekeyStateEx([in] int iNameKey, [out] CLMgrNameKeyStates *piState, [out] CLMgrQualifiedEntityID *pEntityID); [helpstring("method StopRingingSound")] HRESULT StopRingingSound(); }; [ object, uuid(f8e55621-4c00-11d3-80bc-00105a653379), dual, helpstring("IClientPresenceInformation Interface"), oleautomation, pointer_default(unique) ] interface IClientPresenceInformation : IDispatch { [id(1), helpstring("Get the user presence information")] HRESULT GetUserPresenceInfo( [in] BSTR bstrId, [out] INT32* iUserId, [out] INT32* iSiteId, [out] BSTR* bstrUsername, [out] INT32* iStatus, [out] BSTR* bstrStatusText); [id(2), helpstring("Subscribe user to get user presence changes")] HRESULT SubscribeUserPresence( [in] DWORD uiCookie, [in] INT32 iUserId, [in] INT32 iSiteId); [id(3), helpstring("Unsubscribe user to get no more user presence changes")] HRESULT UnsubscribeUserPresence( [in] DWORD uiCookie, [in] INT32 iUserId, [in] INT32 iSiteId); [id(4), helpstring("Get own E-Mail address to get own user presence status information")] HRESULT GetOwnEmailAddress( [out] BSTR* bstrEmailAddress); [id(5), helpstring("Get status names to display")] HRESULT GetStatusNames( [out] VARIANT* pvStatusNames, [out] INT32* piLocaleId); [id(6), helpstring("Terminate all active subscriptions")] HRESULT UnsubscribeAll([in] DWORD dwCookie); [id(7), helpstring("Lookup existance of user E-Mail address")] HRESULT LookupUserEmailAddress([in] BSTR bstrId); }; [ object, uuid(f8e55622-4c00-11d3-80bc-00105a653379), helpstring("IClientPresenceInformationEvents Interface"), oleautomation, pointer_default(unique) ] interface IClientPresenceInformationEvents : IUnknown { [id(1), helpstring("Notify about user presence changes of subscribed users")] HRESULT OnSubscribedUserPresenceStateChanged( [in] INT32 iUserId, [in] INT32 iSiteId, [in] BSTR bstrUsername, [in] INT32 iStatus, [in] BSTR bstrStatusText); }; /*[ uuid(f8e55622-4c00-11d3-80bc-00105a653379), helpstring("IClientPresenceInformationEvents Interface"), hidden, nonextensible ] dispinterface IClientPresenceInformationEvents { properties: methods: [id(1), helpstring("Notify about user presence changes of subscribed users")] void OnSubscribedUserPresenceStateChanged( [in] INT32 userId, [in] INT32 siteId, [in] BSTR username, [in] INT32 status, [in] BSTR statusText); };*/ [ object, uuid(f8e5552f-4c00-11d3-80bc-00105a653379), dual, helpstring("IFileEntryDisp Interface"), oleautomation, pointer_default(unique) ] interface IFileEntry : IDispatch { [propget, id(1), helpstring("property FileID")] HRESULT FileID([out, retval] BSTR *pVal); [propget, id(2), helpstring("property UserID")] HRESULT UserID([out, retval] LONG *pbVal); [propget, id(3), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal); [propget, id(4), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal); [propget, id(5), helpstring("property Scope")] HRESULT Scope([out, retval] LONG *pbVal); [propget, id(6), helpstring("property Category")] HRESULT Category([out, retval] LONG *pbVal); [propget, id(7), helpstring("property Private")] HRESULT Private([out, retval] BOOL *pbVal); [propget, id(8), helpstring("property Hidden")] HRESULT Hidden([out, retval] BOOL *pbVal); [propget, id(9), helpstring("property LastModificationUTC")] HRESULT LastModificationUTC([out, retval] DATE *pbVal); [propget, id(10), helpstring("property SystemFile")] HRESULT SystemFile([out, retval] BOOL *pbVal); [propget, id(11), helpstring("property Culture")] HRESULT Culture([out, retval] BSTR *pVal); }; [ object, uuid(f8e55531-4c00-11d3-80bc-00105a653379), dual, helpstring("IFileEntryCollectionDisp Interface"), oleautomation, pointer_default(unique) ] interface IFileEntryCollection : IDispatch { [propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum([out, retval] IUnknown** pVal); [id(DISPID_VALUE)] HRESULT Item([in] VARIANT index, [out, retval] VARIANT* pVariant); [propget, id(1)] HRESULT Count([out, retval] long *pVal); }; [ object, uuid(f8e554cd-4c00-11d3-80bc-00105a653379), dual, helpstring("IClientConfig Interface"), oleautomation, pointer_default(unique) ] interface IClientConfig : IDispatch { [propget, id(1), helpstring("property UserId")] HRESULT UserId([out, retval] ULONG* pVal); [propget, id(2), helpstring("property Name")] HRESULT Name([out, retval] BSTR* pVal); [propget, id(3), helpstring("property UserDatadir")] HRESULT UserDatadir([out, retval] BSTR* pVal); [propget, id(4), helpstring("property EMailAddress")] HRESULT EMailAddress([out, retval] BSTR* pVal); [propput, id(4), helpstring("property EMailAddress")] HRESULT EMailAddress([in] BSTR newVal); [propget, id(5), helpstring("property ShortName")] HRESULT ShortName([out, retval] BSTR* pVal); [propget, id(6), helpstring("property SuppressOwnNumber")] HRESULT SuppressOwnNumber([out, retval] BOOL* pVal); [propput, id(6), helpstring("property SuppressOwnNumber")] HRESULT SuppressOwnNumber([in] BOOL newVal); [propget, id(7), helpstring("property MaxRedialListLength")] HRESULT MaxRedialListLength([out, retval] ULONG* pVal); [propput, id(7), helpstring("property MaxRedialListLength")] HRESULT MaxRedialListLength([in] ULONG newVal); [propget, id(8), helpstring("property RedialImmediately")] HRESULT RedialImmediately([out, retval] BOOL* pVal); [propput, id(8), helpstring("property RedialImmediately")] HRESULT RedialImmediately([in] BOOL newVal); [propget, id(9), helpstring("property EnablePhoneCallList")] HRESULT EnablePhoneCallList([out, retval] BOOL* pVal); [propput, id(9), helpstring("property EnablePhoneCallList")] HRESULT EnablePhoneCallList([in] BOOL newVal); [propget, id(10), helpstring("property MaxPhoneCallListLength")] HRESULT MaxPhoneCallListLength([out, retval] ULONG* pVal); [propput, id(10), helpstring("property MaxPhoneCallListLength")] HRESULT MaxPhoneCallListLength([in] ULONG newVal); [propget, id(11), helpstring("property DefaultFwd")] HRESULT DefaultFwd([out, retval] BOOL* pVal); [propput, id(11), helpstring("property DefaultFwd")] HRESULT DefaultFwd([in] BOOL newVal); [propget, id(12), helpstring("property DefaultFwdNumber")] HRESULT DefaultFwdNumber([out, retval] BSTR* pVal); [propput, id(12), helpstring("property DefaultFwdNumber")] HRESULT DefaultFwdNumber([in] BSTR newVal); [propget, id(13), helpstring("property FwdOnBusy")] HRESULT FwdOnBusy([out, retval] BOOL* pVal); [propput, id(13), helpstring("property FwdOnBusy")] HRESULT FwdOnBusy([in] BOOL newVal); [propget, id(14), helpstring("property FwdOnBusyNumber")] HRESULT FwdOnBusyNumber([out, retval] BSTR* pVal); [propput, id(14), helpstring("property FwdOnBusyNumber")] HRESULT FwdOnBusyNumber([in] BSTR newVal); [propget, id(15), helpstring("property FwdOnNoAnswer")] HRESULT FwdOnNoAnswer([out, retval] BOOL* pVal); [propput, id(15), helpstring("property FwdOnNoAnswer")] HRESULT FwdOnNoAnswer([in] BOOL newVal); [propget, id(16), helpstring("property FwdOnNoAnswerNumber")] HRESULT FwdOnNoAnswerNumber([out, retval] BSTR* pVal); [propput, id(16), helpstring("property FwdOnNoAnswerNumber")] HRESULT FwdOnNoAnswerNumber([in] BSTR newVal); [propget, id(17), helpstring("property FwdOnNoAnswerTimeout")] HRESULT FwdOnNoAnswerTimeout([out, retval] ULONG* pVal); [propput, id(17), helpstring("property FwdOnNoAnswerTimeout")] HRESULT FwdOnNoAnswerTimeout([in] ULONG newVal); [propget, id(18), helpstring("property VoiceMailFile")] HRESULT VoiceMailFile([out, retval] BSTR* pVal); [propput, id(18), helpstring("property VoiceMailFile")] HRESULT VoiceMailFile([in] BSTR newVal); [propget, id(19), helpstring("property MaxVoiceMailRecordingLen")] HRESULT MaxVoiceMailRecordingLen([out, retval] LONG* pVal); [propput, id(19), helpstring("property MaxVoiceMailRecordingLen")] HRESULT MaxVoiceMailRecordingLen([in] LONG newVal); [propget, id(20), helpstring("property VoiceMailSent")] HRESULT VoiceMailSent([out, retval] BOOL* pVal); [propput, id(20), helpstring("property VoiceMailSent")] HRESULT VoiceMailSent([in] BOOL newVal); [propget, id(21), helpstring("property SIPUserID")] HRESULT SIPUserID([out, retval] BSTR* pVal); [propget, id(22), helpstring("property SIPUsername")] HRESULT SIPUsername([out, retval] BSTR* pVal); [propget, id(23), helpstring("property SIPPassword")] HRESULT SIPPassword([out, retval] BSTR* pVal); [propput, id(23), helpstring("property SIPPassword")] HRESULT SIPPassword([in] BSTR newVal); [propget, id(24), helpstring("property LoginDeviceType")] HRESULT LoginDeviceType([out, retval] CHAR* pVal); [propput, id(24), helpstring("property LoginDeviceType")] HRESULT LoginDeviceType([in] CHAR newVal); [propget, id(25), helpstring("property CountryCode")] HRESULT CountryCode([out, retval] BSTR* pVal); [propput, id(25), helpstring("property CountryCode")] HRESULT CountryCode([in] BSTR newVal); [propget, id(26), helpstring("property AreaCode")] HRESULT AreaCode([out, retval] BSTR* pVal); [propput, id(26), helpstring("property AreaCode")] HRESULT AreaCode([in] BSTR newVal); [propget, id(27), helpstring("property PublicAccessPrefix")] HRESULT PublicAccessPrefix([out, retval] CHAR* pVal); [propput, id(27), helpstring("property PublicAccessPrefix")] HRESULT PublicAccessPrefix([in] CHAR newVal); [propget, id(28), helpstring("property ServerDataDirectory")] HRESULT ServerDataDirectory([out, retval] BSTR* pVal); [propget, id(29), helpstring("property DefaultVoicemailFile")] HRESULT DefaultVoicemailFile([out, retval] BSTR* pVal); [propget, id(30), helpstring("property UserRootDirectory")] HRESULT UserRootDirectory([out, retval] BSTR* pVal); [propget, id(31), helpstring("property InternationCallPrefix")] HRESULT InternationCallPrefix([out, retval] BSTR* pVal); [propput, id(31), helpstring("property InternationCallPrefix")] HRESULT InternationCallPrefix([in] BSTR newVal); [propget, id(32), helpstring("property LongDistanceCallPrefix")] HRESULT LongDistanceCallPrefix([out, retval] BSTR* pVal); [propput, id(32), helpstring("property LongDistanceCallPrefix")] HRESULT LongDistanceCallPrefix([in] BSTR newVal); [propget, id(33), helpstring("property VoiceMailServerName")] HRESULT VoiceMailServerName([out, retval] BSTR* pVal); [propget, id(34), helpstring("property VoiceMailSenderAddress")] HRESULT VoiceMailSenderAddress([out, retval] BSTR* pVal); [propget, id(35), helpstring("property DefaultSkinFileName")] HRESULT DefaultSkinFileName([out, retval] BSTR* pVal); [propget, id(36), helpstring("property ChargingUnitValue")] HRESULT ChargingUnitValue([out, retval] DOUBLE* pVal); [propget, id(37), helpstring("property ChargingUnitCurrency")] HRESULT ChargingUnitCurrency([out, retval] BSTR* pVal); [propget, id(38), helpstring("property RecordingCodec")] HRESULT RecordingCodec([out, retval] LONG* pVal); [propget, id(39), helpstring("property CompressionCodec")] HRESULT CompressionCodec([out, retval] BSTR* pVal); [propget, id(40), helpstring("property DefaultLoginDeviceType")] HRESULT DefaultLoginDeviceType([out, retval] CHAR* pVal); [propget, id(42), helpstring("property ClientNumberEnumerator")] HRESULT ClientNumberEnumerator([out, retval] IDispatch** ppVal); [propget, id(43), helpstring("property SecondaryCallEnabled")] HRESULT SecondaryCallEnabled([out, retval] BOOL* pVal); [propput, id(43), helpstring("property SecondaryCallEnabled")] HRESULT SecondaryCallEnabled([in] BOOL newVal); [propget, id(44), helpstring("property DoNotDisturb")] HRESULT DoNotDisturb([out, retval] BOOL* pVal); [propput, id(44), helpstring("property DoNotDisturb")] HRESULT DoNotDisturb([in] BOOL newVal); [propget, id(45), helpstring("property SIPAccountEnumerator")] HRESULT SIPAccountEnumerator([out, retval] IDispatch** ppVal); [propget, id(46), helpstring("property SIPProviderEnumerator")] HRESULT SIPProviderEnumerator([out, retval] IDispatch** ppVal); [id(47), helpstring("method BeginUpdate")] HRESULT BeginUpdate(); [id(48), helpstring("method EndUpdate")] HRESULT EndUpdate(); [propget, id(49), helpstring("property ConfigBuffer")] HRESULT ConfigBuffer([out, retval] VARIANT* pVal); [propput, id(49), helpstring("property ConfigBuffer")] HRESULT ConfigBuffer([in] VARIANT newVal); [propget, id(50), helpstring("property CallerEnumerator")] HRESULT CallerEnumerator([out, retval] IDispatch** ppVal); [propget, id(51), helpstring("property RedialEnumerator")] HRESULT RedialEnumerator([out, retval] IDispatch** ppVal); [id(52), helpstring("method DeleteRedialEntry")] HRESULT DeleteRedialEntry([in] LONG Idx, [in] DATE Time); [id(53), helpstring("method DeleteCallerEntry")] HRESULT DeleteCallerEntry([in] LONG Idx, [in] DATE Time); [id(54), helpstring("method DeleteRedialList")] HRESULT DeleteRedialList(); [id(55), helpstring("method DeleteCallerList")] HRESULT DeleteCallerList(); [propget, id(56), helpstring("property EnumEnabled")] HRESULT EnumEnabled([out, retval] BOOL* pVal); [propput, id(56), helpstring("property EnumEnabled")] HRESULT EnumEnabled([in] BOOL newVal); [id(57), helpstring("method IsFeatureInstalled")] HRESULT IsFeatureInstalled([in] BSTR Guid, [out, retval] BOOL* pVal); [id(58), helpstring("method AddFile")] HRESULT AddFile([in] BSTR SrcFilePath, [in] BSTR FileName, [in] LONG Scope, [in] LONG Category, [in] BOOL IsPrivate, [in] BOOL IsHidden); [id(59), helpstring("method DeleteFile")] HRESULT DeleteFile([in] BSTR FileName, [in] LONG Scope, [in] LONG Category); [propget, id(60), helpstring("method FilePath")] HRESULT FilePath([in] BSTR FileName, [in] LONG Scope, [in] LONG Category, [out, retval] BSTR* pVal); [propget, id(61), helpstring("method FileList")] HRESULT FileList([in] BSTR FileExt, [in] LONG Scope, [in] LONG Category, [out, retval] IDispatch** ppVal); [propget, id(62), helpstring("method FileExists")] HRESULT FileExists([in] BSTR FileName, [in] LONG Scope, [in] LONG Category, [out, retval] BOOL* pVal); [propget, id(63), helpstring("method IsReadOnly")] HRESULT IsReadOnly([in] BSTR FileName, [in] LONG Scope, [in] LONG Category, [out, retval] BOOL* pVal); [propget, id(64), helpstring("method LastErrorMessage")] HRESULT LastErrorMessage([out, retval] BSTR* pVal); [id(65), helpstring("method SetPhoneCallBackState")] HRESULT SetPhoneCallBackState([in] LONG Idx, [in] DATE Time, [in] LONG CBState); [id(66), helpstring("method SetPhoneCallListViewed")] HRESULT SetPhoneCallListViewed([in] BOOL Viewed); [propget, id(67), helpstring("method LastError")] HRESULT LastError([out, retval] LONG* pVal); [propget, id(68), helpstring("method DefaultConversationRecordingPath")] HRESULT DefaultConversationRecordingPath([out, retval] BSTR* pVal); [id(69), helpstring("method HasRole")] HRESULT HasRole([in] long roleId, [out, retval] BOOL* pVal); [propget, id(70), helpstring("property UserConfiguredEncryptionMode")] HRESULT UserConfiguredEncryptionMode([out, retval] ULONG* pVal); [propput, id(70), helpstring("property UserConfiguredEncryptionMode")] HRESULT UserConfiguredEncryptionMode([in] ULONG newVal); [propget, id(71), helpstring("property ServerDefaultEncryptionMode")] HRESULT ServerDefaultEncryptionMode([out, retval] ULONG* pVal); [propget, id(72), helpstring("property NumberOfNewVoicemails")] HRESULT NumberOfNewVoicemails([out, retval] LONG* pVal); [propput, id(72), helpstring("property NumberOfNewVoicemails")] HRESULT NumberOfNewVoicemails([in] LONG newVal); [propget, id(74), helpstring("property CollaborationLink")] HRESULT CollaborationLink([out, retval] IDispatch** ppVal); [propget, id(75), helpstring("property VideoLink")] HRESULT VideoLink([out, retval] IDispatch** ppVal); [propget, id(76), helpstring("property Away")] HRESULT Away([out, retval] BOOL* pVal); [propput, id(76), helpstring("property Away")] HRESULT Away([in] BOOL newVal); [propget, id(77), helpstring("property AwayText")] HRESULT AwayText([out, retval, string] BSTR* pVal); [propput, id(77), helpstring("property AwayText")] HRESULT AwayText([in, string] BSTR newVal); [id(78), helpstring("Reloads the presence configuration")] HRESULT (ReloadPresenceData)(); [id(79), helpstring("Publicate detected away state")] HRESULT (PublicateDetectedAwayState)([in] BOOL newVal); [id(80), helpstring("Gets the local site id")] HRESULT (GetLocalSiteID)([out, retval] long* plRetVal); [id(81), helpstring("Gets the local filepath for user bitmaps")] HRESULT (GetAvatarBitmap)([in] int iSiteID, [in] int iUserID, [in] BOOL bForceReload, [out] BOOL* pbModified, [out,string] BSTR* pbstrFileNameVal, [out, retval, string] BSTR* pbstrVal); [id(82), helpstring("Sets the own user bitmaps")] HRESULT (SetAvatarBitmap)([in, string] BSTR bstrFileName, [in, string] BSTR bstrFilePath); [id(83), helpstring("Deletes the own user bitmaps")] HRESULT (DeleteAvatarBitmap)(); [id(84), helpstring("Set RichStatus Configuration")] HRESULT (SetRichPresenceStatus)([in] BOOL bAway, [in] BOOL bDoNotDisturb, [in] DATE dExpirationDate); /* * encryption mode of current call * we will notified about changed data with message "PubCLMgrLineDetailsChangedMessage" */ [propget, id(85), helpstring("property CurrentEncryptionMode")] HRESULT CurrentEncryptionMode([out, retval] LONG *plCurrentEncryptionMode); [propget, id(86), helpstring("property IsUserVideoAllowed")] HRESULT IsUserVideoAllowed([out, retval] BOOL* pVal); [id(87), helpstring("Set the appointment text")] HRESULT (SetAppointmentText)([in, string] BSTR bstrAppointmentText, [in] DATE dExpirationDate); [propget, id(88), helpstring("property AppointmentText")] HRESULT AppointmentText([out, retval] BSTR* pVal); [propget, id(89), helpstring("property StateExpirationDate")] HRESULT StateExpirationDate([out, retval] DATE* pVal); [propget, id(90), helpstring("property AppointmentExpirationDate")] HRESULT AppointmentExpirationDate([out, retval] DATE* pVal); [propget, id(91), helpstring("property RecWizardPopupState")] HRESULT RecWizardPopupState([out, retval] BOOL* pVal); [propput, id(91), helpstring("property RecWizardPopupState")] HRESULT RecWizardPopupState([in] BOOL newVal); // AudioModes config [propget, id(92), helpstring("property HandsetDevice")] HRESULT HandsetDevice([out, retval] BSTR* pVal); [propget, id(93), helpstring("property HandsetCaptureDevice")] HRESULT HandsetCaptureDevice([out, retval] BSTR* pVal); [propget, id(94), helpstring("property HeadsetDevice")] HRESULT HeadsetDevice([out, retval] BSTR* pVal); [propget, id(95), helpstring("property HeadsetCaptureDevice")] HRESULT HeadsetCaptureDevice([out, retval] BSTR* pVal); [propget, id(96), helpstring("property HandsfreeDevice")] HRESULT HandsfreeDevice([out, retval] BSTR* pVal); [propget, id(97), helpstring("property HandsfreeCaptureDevice")] HRESULT HandsfreeCaptureDevice([out, retval] BSTR* pVal); [propget, id(98), helpstring("property OpenListeningDevice")] HRESULT OpenListeningDevice([out, retval] BSTR* pVal); [propget, id(99), helpstring("property RingingDevice")] HRESULT RingingDevice([out, retval] BSTR* pVal); [propget, id(100), helpstring("property PcSpeakerRinging")] HRESULT PcSpeakerRinging([out, retval] INT32* pVal); [propput, id(100), helpstring("property PcSpeakerRinging")] HRESULT PcSpeakerRinging([in] INT32 newVal); [propget, id(101), helpstring("property DefaultAudioMode")] HRESULT DefaultAudioMode([out, retval] INT32* pVal); [propget, id(102), helpstring("property HandsetVolume")] HRESULT HandsetVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propget, id(103), helpstring("property HandsetCaptureVolume")] HRESULT HandsetCaptureVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propput, id(103), helpstring("property HandsetCaptureVolume")] HRESULT HandsetCaptureVolume([in] BSTR pDev, [in] INT32 newVal); [propget, id(104), helpstring("property HeadsetVolume")] HRESULT HeadsetVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propget, id(105), helpstring("property HeadsetCaptureVolume")] HRESULT HeadsetCaptureVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propput, id(105), helpstring("property HeadsetCaptureVolume")] HRESULT HeadsetCaptureVolume([in] BSTR pDev, [in] INT32 newVal); [propget, id(106), helpstring("property HandsfreeVolume")] HRESULT HandsfreeVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propget, id(107), helpstring("property HandsfreeCaptureVolume")] HRESULT HandsfreeCaptureVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propput, id(107), helpstring("property HandsfreeCaptureVolume")] HRESULT HandsfreeCaptureVolume([in] BSTR pDev, [in] INT32 newVal); [propget, id(108), helpstring("property OpenListeningVolume")] HRESULT OpenListeningVolume([in] BSTR pDev, [out, retval] INT32* pVal); [propget, id(109), helpstring("property RingingVolume")] HRESULT RingingVolume([in] BSTR pDev, [out, retval] INT32* pVal); // other CLMgr config used in client [propget, id(110), helpstring("property LineDetailsBrowserDelay")] HRESULT LineDetailsBrowserDelay([out, retval] INT32* pVal); [propget, id(111), helpstring("property TrimmingWorkingSet")] HRESULT TrimmingWorkingSet([out, retval] INT32* pVal); [propget, id(112), helpstring("property AllowOutboundIntercom")] HRESULT AllowOutboundIntercom([out, retval] BOOL* pVal); [propget, id(113), helpstring("property IPPBXClient")] HRESULT IPPBXClient([out, retval] BOOL* pVal); [propget, id(114), helpstring("property UnknownCallerString")] HRESULT UnknownCallerString([out, retval] BSTR* pVal); [propget, id(115), helpstring("property ServerRestartInterval")] HRESULT ServerRestartInterval([out, retval] INT32* pVal); [propget, id(116), helpstring("property ServerRestartIntervalMax")] HRESULT ServerRestartIntervalMax([out, retval] INT32* pVal); [propget, id(117), helpstring("property EnableVideo")] HRESULT EnableVideo([out, retval] BOOL* pVal); [propget, id(118), helpstring("property IsIncomingVideoAllowed")] HRESULT IsIncomingVideoAllowed([out, retval] BOOL* pVal); [propput, id(118), helpstring("property IsIncomingVideoAllowed")] HRESULT IsIncomingVideoAllowed([in] BOOL newVal); [propget, id(119), helpstring("property AlwaysStartOutgoingVideo")] HRESULT AlwaysStartOutgoingVideo([out, retval] BOOL* pVal); [propput, id(119), helpstring("property AlwaysStartOutgoingVideo")] HRESULT AlwaysStartOutgoingVideo([in] BOOL newVal); [propget, id(120), helpstring("property CodecPreference")] HRESULT CodecPreference([out, retval] INT32* pVal); [propput, id(120), helpstring("property CodecPreference")] HRESULT CodecPreference([in] INT32 newVal); [propget, id(121), helpstring("property EmailClient")] HRESULT EmailClient([out, retval] BSTR* pVal); [propput, id(121), helpstring("property EmailClient")] HRESULT EmailClient([in] BSTR newVal); [propget, id(122), helpstring("property VideoDeviceName")] HRESULT VideoDeviceName([out, retval] BSTR* pVal); [propput, id(122), helpstring("property VideoDeviceName")] HRESULT VideoDeviceName([in] BSTR newVal); [propget, id(123), helpstring("property VideoFrameWidth")] HRESULT VideoFrameWidth([out, retval] INT32* pVal); [propput, id(123), helpstring("property VideoFrameWidth")] HRESULT VideoFrameWidth([in] INT32 newVal); [propget, id(124), helpstring("property VideoFrameHeight")] HRESULT VideoFrameHeight([out, retval] INT32* pVal); [propput, id(124), helpstring("property VideoFrameHeight")] HRESULT VideoFrameHeight([in] INT32 newVal); [propget, id(125), helpstring("property VideoFrameRate")] HRESULT VideoFrameRate([out, retval] INT32* pVal); [propput, id(125), helpstring("property VideoFrameRate")] HRESULT VideoFrameRate([in] INT32 newVal); [propget, id(126), helpstring("property SerialNumber")] HRESULT SerialNumber([out, retval] BSTR* pVal); [id(127), helpstring("IsPluginLicensed")] HRESULT (IsPluginLicensed)([in, string] BSTR bstrProgID, [out, retval] BOOL* pVal); [propget, id(128), helpstring("property PasswordPolicyEnabled")] HRESULT PasswordPolicyEnabled([out, retval] BOOL* pVal); }; #ifdef MEMLINEMGR [ uuid(f8e552f7-4c01-11d3-80bc-00105a653379), version(2.0), helpstring("MEM Line Manager 2.0 Type Library") ] library MEMCLMGRLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); /* * dispatch interface for client line manager events * can be used from VB clients for receiving client line manager messages via connection point */ [ uuid(f8e55365-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEventsDisp Interface"), hidden, nonextensible ] dispinterface IClientLineMgrEventsDisp { properties: methods: /* * signal line manager message to client * msg: same as wParam send with WM_LineMgrNotification -> CLMgrMessages * param: same as lParam send with WM_LineMgrNotification -> CLMgrMessages */ [id(1), helpstring("method DispOnLineMgrNotification")] void DispOnLineMgrNotification([in] long msg, [in] long param); }; [ uuid(f8e553e5-4c01-11d3-80bc-00105a653379), helpstring("MEM ClCallHistItem Class") ] coclass MemClCallHistItem { [default] interface IClCallHistItemDisp; }; [ uuid(f8e553e3-4c01-11d3-80bc-00105a653379), helpstring("MEM ClCallHistCollection Class") ] coclass MemClCallHistCollection { [default] interface IClCallHistCollectionDisp; }; [ uuid(f8e554cf-4c01-11d3-80bc-00105a653379), helpstring("MEM CClClientNumberItem Class") ] coclass MemClientNumber { [default] interface IClientNumber; }; [ uuid(f8e554d1-4c01-11d3-80bc-00105a653379), helpstring("MEM CClClientNumberCollection Class") ] coclass MemClientNumberCollection { [default] interface IClientNumberCollection; }; [ uuid(f8e55424-4c01-11d3-80bc-00105a653379), helpstring("CClChatMessageItem Class") ] coclass MemCClChatMessageItem { [default] interface IClChatMessageItemDisp; }; [ uuid(f8e552f8-4c01-11d3-80bc-00105a653379), helpstring("MEM ClientLineMgr Class") ] coclass MemClientLineMgr { interface IClientLineMgr2; interface IClientLineMgrEx; interface IClientLineMgrEx2; interface IClientLineMgrEx3; interface IClientLineMgrEx4; interface IClientLineMgrEx5; interface IClientLineMgrEx6; interface IClientLineMgrEx7; interface IClientLineMgrEx8; interface IClientLineMgrEx9; interface IClientLineMgrEx10; interface IClientLineMgrEx11; interface IClientLineMgrEx12; interface IClientLineMgrEx13; interface IClientLineMgrPub; interface IClientLineMgrPub2; interface IClientLineMgrPub3; interface IClientLineMgrPub4; interface IClientLineMgrPub5; interface IClientLineMgrPub6; interface IClientLineMgrPub7; interface IClientLineMgrPub8; [default] interface IClientLineMgrDisp; [default, source] dispinterface IClientLineMgrEventsDisp; [source] dispinterface IClientLineMgrEventsPub; }; [ uuid(f8e552b4-4c01-11d3-80bc-00105a653379), helpstring("TapiClientLineMgr Class") ] coclass MemTapiClientLineMgr { [default] interface IClientLineMgr2; }; [ uuid(f8e552f9-4c01-11d3-80bc-00105a653379), helpstring("MEM ClientLine Class") ] coclass MemClientLine { interface IClientLine2; interface IClientLineEx; interface IClientLineEx2; interface IClientLineEx3; interface IClientLineEx4; interface IClientLinePub; interface IClientLinePub2; interface IClientLinePub3; interface IClientLinePub4; [default] interface IClientLineDisp; }; [ uuid(f8e552b5-4c01-11d3-80bc-00105a653379), helpstring("MEM TapiClientLine Class") ] coclass MemTapiClientLine { [default] interface IClientLine2; }; [ uuid(f8e5552e-4c01-11d3-80bc-00105a653379), helpstring("MEM CFileEntry Class") ] coclass MemFileEntry { [default] interface IFileEntry; }; [ uuid(f8e55530-4c01-11d3-80bc-00105a653379), helpstring("MEM CFileEntryCollection Class") ] coclass MemFileEntryCollection { [default] interface IFileEntryCollection; }; [ uuid(f8e554cc-4c01-11d3-80bc-00105a653379), helpstring("MEM ClientConfig Class") ] coclass MemClientConfig { [default] interface IClientConfig; }; [ uuid(f8e554d5-4c01-11d3-80bc-00105a653379), helpstring("MEM SIPProviderItem Class") ] coclass MemSIPProviderItem { [default] interface ISIPProviderItem; }; [ uuid(f8e554d7-4c01-11d3-80bc-00105a653379), helpstring("MEM SIPProviderCollection Class") ] coclass MemSIPProviderCollection { [default] interface ISIPProviderCollection; }; [ uuid(f8e554d9-4c01-11d3-80bc-00105a653379), helpstring("MEM SIPAccountItem Class") ] coclass MemSIPAccountItem { [default] interface ISIPAccountItem; }; [ uuid(f8e554db-4c01-11d3-80bc-00105a653379), helpstring("MEM SIPAccountCollection Class") ] coclass MemSIPAccountCollection { [default] interface ISIPAccountCollection; }; [ uuid(f8e55596-4c01-11d3-80bc-00105a653379), helpstring("MEM LoggedInDeviceItem Class") ] coclass MemLoggedInDeviceItem { [default] interface ILoggedInDeviceItem; }; [ uuid(f8e55597-4c01-11d3-80bc-00105a653379), helpstring("MEM LoggedInDevicesCollection Class") ] coclass MemLoggedInDevicesCollection { [default] interface ILoggedInDevicesCollection; }; [ uuid(f8e554eb-4c01-11d3-80bc-00105a653379), helpstring("MEM CallerCollection Class") ] coclass MemCallerCollection { [default] interface ICallerCollection; }; [ uuid(f8e554e9-4c01-11d3-80bc-00105a653379), helpstring("MEM CallerItem Class") ] coclass MemCallerItem { [default] interface ICallerItem; }; [ uuid(f8e554ef-4c01-11d3-80bc-00105a653379), helpstring("MEM RedialCollection Class") ] coclass MemRedialCollection { [default] interface IRedialCollection; }; [ uuid(f8e554ed-4c01-11d3-80bc-00105a653379), helpstring("MEM RedialItem Class") ] coclass MemRedialItem { [default] interface IRedialItem; }; [ uuid(f8e55544-4c01-11d3-80bc-00105a653379), helpstring("MEM NameNumberSearchResult Class") ] coclass MemNameNumberSearchResult { [default] interface INameNumberSearchResult; }; [ uuid(f8e55545-4c01-11d3-80bc-00105a653379), helpstring("MEM NameNumberSearchResultCollection Class") ] coclass MemNameNumberSearchResultCollection { [default] interface INameNumberSearchResultCollection; }; }; #else [ object, uuid(f8e5558a-4c00-11d3-80bc-00105a653379), dual, helpstring("IChatMsg Interface"), pointer_default(unique) ] interface IChatMsg : IDispatch { [propget, id(1), helpstring("property Type")] HRESULT Type([out, retval] MSGTYPE *pVal); [propget, id(2), helpstring("property Dir")] HRESULT Dir([out, retval] MSGDIR *pVal); [propget, id(3), helpstring("property ID")] HRESULT ID([out, retval] LONG *pVal); [propget, id(4), helpstring("property TimeStamp")] HRESULT TimeStamp([out, retval] DATE *pVal); [propget, id(5), helpstring("property Text")] HRESULT Text([out, retval] BSTR *pVal); [propput, id(5), helpstring("property Text")] HRESULT Text([in] BSTR newVal); [propget, id(6), helpstring("property Content")] HRESULT Content([out, retval] VARIANT* pVal); [propput, id(6), helpstring("property Content")] HRESULT Content([in] VARIANT newVal); }; [ object, uuid(f8e55588-4c00-11d3-80bc-00105a653379), dual, helpstring("IChatClient Interface"), pointer_default(unique) ] interface IChatClient : IDispatch { [propget, id(1), helpstring("property PeerID")] HRESULT PeerID([out, retval] LONG *pVal); [propget, id(2), helpstring("property PeerName")] HRESULT PeerName([out, retval] BSTR *pVal); [id(3), helpstring("method CreateMsg")] HRESULT CreateMsg([in] MSGTYPE Val, [out, retval] IDispatch **ppDisp); [id(4), helpstring("method SendMsg")] HRESULT SendMsg([in] IDispatch *pDisp); [id(5), helpstring("method RecvMsg")] HRESULT RecvMsg([out, retval] IDispatch **ppDisp); [propget, id(6), helpstring("property PeerSiteID")] HRESULT PeerSiteID([out, retval] LONG *pVal); }; [ object, uuid(f8e55586-4c00-11d3-80bc-00105a653379), dual, helpstring("IChatClientList Interface"), pointer_default(unique) ] interface IChatClientList : IDispatch { [id(1), helpstring("method Add")] HRESULT Add([in] LONG ID, [in] BSTR Name, [out, retval] IDispatch **ppDisp); [id(2), helpstring("method Remove")] HRESULT Remove([in] IDispatch *pDisp); [propget, id(3), helpstring("property OwnID")] HRESULT OwnID([out, retval] LONG *pVal); [propget, id(4), helpstring("property OwnName")] HRESULT OwnName([out, retval] BSTR *pVal); [id(5), helpstring("method AddEx")] HRESULT AddEx([in] LONG UserID, [in] LONG SiteID, [in] BSTR Name, [out, retval] IDispatch **ppDisp); }; [ object, uuid(CF678C53-F874-4683-BE60-F9B8935B744D), dual, helpstring("ICollaborationLink Interface"), pointer_default(unique) ] interface ICollaborationLink : IDispatch { [id(1), helpstring("method SendInvitation")] HRESULT SendInvitation([in] BSTR bstrTool, [in] BSTR bstrVersion, [in] BSTR bstrInvitation); [id(2), helpstring("method SendACK")] HRESULT SendACK([in] COLLABORATIONMSGTYPE cmt, [in] BSTR bstrTool, [in] BSTR bstrVersion, [in] BSTR bstrInvitation); [propget, id(3), helpstring("property OwnID")] HRESULT OwnID([out, retval] LONG *pVal); [propget, id(4), helpstring("property OwnName")] HRESULT OwnName([out, retval] BSTR *pVal); [propget, id(5), helpstring("property PeerID")] HRESULT PeerID([out, retval] LONG *pVal); [propget, id(6), helpstring("property PeerName")] HRESULT PeerName([out, retval] BSTR *pVal); }; [ object, uuid(f8e555ef-4c00-11d3-80bc-00105a653379), dual, helpstring("IVideoLink Interface"), pointer_default(unique) ] interface IVideoLink : IDispatch { [propget, id(1), helpstring("property OutgoingVideoSession")] HRESULT OutgoingVideoSession([out, retval] IDispatch** ppVal); [propget, id(2), helpstring("property IncomingVideoSession")] HRESULT IncomingVideoSession([out, retval] IDispatch** ppVal); [id(3), helpstring("property DestroyOutgoingVideoSession")] HRESULT DestroyOutgoingVideoSession([in] IDispatch* pVal); [id(4), helpstring("property DestroyIncomingVideoSession")] HRESULT DestroyIncomingVideoSession([in] IDispatch* pVal); }; [ object, uuid(f8e555ec-4c00-11d3-80bc-00105a653379), dual, helpstring("IVideoSession Interface"), pointer_default(unique) ] interface IVideoSession : IDispatch { [propget, id(1), helpstring("Returns video session state")] HRESULT State([out, retval] VIDEOSESSIONSTATES *pVal); [id(2), helpstring("method StartVideo")] HRESULT StartVideo(); [id(3), helpstring("method StopVideo")] HRESULT StopVideo(); [id(4), helpstring("method SuspendVideo")] HRESULT SuspendVideo(); [id(5), helpstring("method ResumeVideo")] HRESULT ResumeVideo(); }; [ uuid(f8e552f7-4c00-11d3-80bc-00105a653379), version(2.0), helpstring("CLMgr 2.0 Type Library") ] library CLMGRLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); /* * dispatch interface for client line manager events * can be used from VB clients for receiving client line manager messages via connection point */ [ uuid(f8e55365-4c00-11d3-80bc-00105a653379), helpstring("IClientLineMgrEventsDisp Interface"), hidden, nonextensible ] dispinterface IClientLineMgrEventsDisp { properties: methods: /* * signal line manager message to client * msg: same as wParam send with WM_LineMgrNotification -> CLMgrMessages * param: same as lParam send with WM_LineMgrNotification -> CLMgrMessages */ [id(1), helpstring("method DispOnLineMgrNotification")] void DispOnLineMgrNotification([in] long msg, [in] long param); }; [ uuid(f8e553e5-4c00-11d3-80bc-00105a653379), helpstring("ClCallHistItem Class") ] coclass ClCallHistItem { [default] interface IClCallHistItemDisp; }; [ uuid(f8e553e3-4c00-11d3-80bc-00105a653379), helpstring("ClCallHistCollection Class") ] coclass ClCallHistCollection { [default] interface IClCallHistCollectionDisp; }; [ uuid(f8e554cf-4c00-11d3-80bc-00105a653379), helpstring("CClClientNumberItem Class") ] coclass ClientNumber { [default] interface IClientNumber; }; [ uuid(f8e554d1-4c00-11d3-80bc-00105a653379), helpstring("CClClientNumberCollection Class") ] coclass ClientNumberCollection { [default] interface IClientNumberCollection; }; [ uuid(f8e55424-4c00-11d3-80bc-00105a653379), helpstring("CClChatMessageItem Class") ] coclass CClChatMessageItem { [default] interface IClChatMessageItemDisp; }; [ uuid(f8e552f8-4c00-11d3-80bc-00105a653379), helpstring("ClientLineMgr Class") ] coclass ClientLineMgr { interface IClientLineMgr2; interface IClientLineMgrEx; interface IClientLineMgrEx2; interface IClientLineMgrEx3; interface IClientLineMgrEx4; interface IClientLineMgrEx5; interface IClientLineMgrEx6; interface IClientLineMgrEx7; interface IClientLineMgrEx8; interface IClientLineMgrEx9; interface IClientLineMgrEx10; interface IClientLineMgrEx11; interface IClientLineMgrEx12; interface IClientLineMgrEx13; interface IClientLineMgrPub; interface IClientLineMgrPub2; interface IClientLineMgrPub3; interface IClientLineMgrPub4; interface IClientLineMgrPub5; interface IClientLineMgrPub6; interface IClientLineMgrPub7; interface IClientLineMgrPub8; [default] interface IClientLineMgrDisp; [default, source] dispinterface IClientLineMgrEventsDisp; [source] dispinterface IClientLineMgrEventsPub; interface IClientLineMgrEx14; }; [ uuid(f8e552b4-4c00-11d3-80bc-00105a653379), helpstring("TapiClientLineMgr Class") ] coclass TapiClientLineMgr { [default] interface IClientLineMgr2; }; [ uuid(f8e552f9-4c00-11d3-80bc-00105a653379), helpstring("ClientLine Class") ] coclass ClientLine { interface IClientLine2; interface IClientLineEx; interface IClientLineEx2; interface IClientLineEx3; interface IClientLineEx4; interface IClientLinePub; interface IClientLinePub2; interface IClientLinePub3; interface IClientLinePub4; [default] interface IClientLineDisp; }; [ uuid(f8e552b5-4c00-11d3-80bc-00105a653379), helpstring("TapiClientLine Class") ] coclass TapiClientLine { [default] interface IClientLine2; }; [ uuid(f8e5552e-4c00-11d3-80bc-00105a653379), helpstring("CFileEntry Class") ] coclass FileEntry { [default] interface IFileEntry; }; [ uuid(f8e55530-4c00-11d3-80bc-00105a653379), helpstring("CFileEntryCollection Class") ] coclass FileEntryCollection { [default] interface IFileEntryCollection; }; [ uuid(f8e554cc-4c00-11d3-80bc-00105a653379), helpstring("ClientConfig Class") ] coclass ClientConfig { [default] interface IClientConfig; }; [ uuid(f8e554d5-4c00-11d3-80bc-00105a653379), helpstring("SIPProviderItem Class") ] coclass SIPProviderItem { [default] interface ISIPProviderItem; }; [ uuid(f8e554d7-4c00-11d3-80bc-00105a653379), helpstring("SIPProviderCollection Class") ] coclass SIPProviderCollection { [default] interface ISIPProviderCollection; }; [ uuid(f8e554d9-4c00-11d3-80bc-00105a653379), helpstring("SIPAccountItem Class") ] coclass SIPAccountItem { [default] interface ISIPAccountItem; }; [ uuid(f8e554db-4c00-11d3-80bc-00105a653379), helpstring("SIPAccountCollection Class") ] coclass SIPAccountCollection { [default] interface ISIPAccountCollection; }; [ uuid(f8e55596-4c00-11d3-80bc-00105a653379), helpstring("LoggedInDeviceItem Class") ] coclass LoggedInDeviceItem { [default] interface ILoggedInDeviceItem; }; [ uuid(f8e55597-4c00-11d3-80bc-00105a653379), helpstring("LoggedInDevicesCollection Class") ] coclass LoggedInDevicesCollection { [default] interface ILoggedInDevicesCollection; }; [ uuid(f8e554eb-4c00-11d3-80bc-00105a653379), helpstring("CallerCollection Class") ] coclass CallerCollection { [default] interface ICallerCollection; }; [ uuid(f8e554e9-4c00-11d3-80bc-00105a653379), helpstring("CallerItem Class") ] coclass CallerItem { [default] interface ICallerItem; }; [ uuid(f8e554ef-4c00-11d3-80bc-00105a653379), helpstring("RedialCollection Class") ] coclass RedialCollection { [default] interface IRedialCollection; }; [ uuid(f8e554ed-4c00-11d3-80bc-00105a653379), helpstring("RedialItem Class") ] coclass RedialItem { [default] interface IRedialItem; }; [ uuid(f8e55544-4c00-11d3-80bc-00105a653379), helpstring("NameNumberSearchResult Class") ] coclass NameNumberSearchResult { [default] interface INameNumberSearchResult; }; [ uuid(f8e55545-4c00-11d3-80bc-00105a653379), helpstring("NameNumberSearchResultCollection Class") ] coclass NameNumberSearchResultCollection { [default] interface INameNumberSearchResultCollection; }; [ uuid(f8e5558e-4c00-11d3-80bc-00105a653379), helpstring("IChatMsg Class"), noncreatable ] coclass ChatMessage { [default] interface IChatMsg; }; [ uuid(f8e55589-4c00-11d3-80bc-00105a653379), helpstring("IChatClientEvents Interface"), hidden, nonextensible ] dispinterface IChatClientEvents { properties: methods: [id(1), helpstring("method MsgEvent")] HRESULT MsgEvent(); }; [ uuid(f8e5558d-4c00-11d3-80bc-00105a653379), helpstring("IChatClient Class"), noncreatable ] coclass ChatClient { [default] interface IChatClient; [default, source] dispinterface IChatClientEvents; }; [ uuid(f8e55587-4c00-11d3-80bc-00105a653379), helpstring("IChatClientListEvents Interface"), hidden, nonextensible ] dispinterface IChatClientListEvents { properties: methods: [id(1), helpstring("method MsgEvent")] HRESULT MsgEvent([in] MSGTYPE Type, [in] IDispatch *pDisp); }; [ uuid(f8e5558c-4c00-11d3-80bc-00105a653379), helpstring("IChatClientList Class") ] coclass ChatClientList { [default] interface IChatClientList; [default, source] dispinterface IChatClientListEvents; }; [ uuid(EF4208F0-BE8F-4d5a-8C73-30FF4385D1C5), helpstring("ICollaborationLinkEvents Interface"), hidden, nonextensible ] dispinterface ICollaborationLinkEvents { properties: methods: [id(1), helpstring("method OnInvitation")] HRESULT OnInvitation([in] BSTR bstrTool, [in] BSTR bstrVersion, [in] BSTR bstrInvitation); [id(2), helpstring("method OnACK")] HRESULT OnACK([in] COLLABORATIONMSGTYPE cmt, [in] BSTR bstrTool, [in] BSTR bstrVersion, [in] BSTR bstrInvitation); }; [ uuid(4A816D68-59E3-424d-AD49-645057CD16DA), helpstring("ICollaborationLink Class"), noncreatable ] coclass CollaborationLink { [default] interface ICollaborationLink; [default, source] dispinterface ICollaborationLinkEvents; }; [ uuid(f8e555f0-4c00-11d3-80bc-00105a653379), helpstring("IVideoLinkEvents Interface"), hidden, nonextensible ] dispinterface IVideoLinkEvents { properties: methods: [id(1), helpstring("method OnIncomingVideo")] HRESULT OnIncomingVideo(); [id(2), helpstring("method OnReleaseIncomingVideoSession")] HRESULT OnReleaseIncomingVideoSession(); [id(3), helpstring("method OnReleaseOutgoingVideoSession")] HRESULT OnReleaseOutgoingVideoSession(); }; [ uuid(f8e555f1-4c00-11d3-80bc-00105a653379), helpstring("IVideoLink Class"), noncreatable ] coclass VideoLink { [default] interface IVideoLink; [default, source] dispinterface IVideoLinkEvents; }; [ uuid(f8e555ed-4c00-11d3-80bc-00105a653379), helpstring("IVideoSessionEvents Interface"), hidden, nonextensible ] dispinterface IVideoSessionEvents { properties: methods: [id(1), helpstring("method OnStartVideoAck")] HRESULT OnStartVideoAck([in] VIDEORESULT videores); [id(2), helpstring("method OnStopVideoAck")] HRESULT OnStopVideoAck([in] VIDEORESULT videores); [id(3), helpstring("method OnStoppedVideo")] HRESULT OnStoppedVideo([in] VIDEORESULT videores); }; [ uuid(f8e555ee-4c00-11d3-80bc-00105a653379), helpstring("IVideoSession Class"), noncreatable ] coclass VideoSession { [default] interface IVideoSession; [default, source] dispinterface IVideoSessionEvents; }; [ uuid(f8e555fb-4c00-11d3-80bc-00105a653379), helpstring("ClientLineMgrQA Class") ] coclass ClientLineMgrQA { [default] interface IClientLineMgrQA; }; [ uuid(f8e555fd-4c00-11d3-80bc-00105a653379), helpstring("ClientLineQA Class"), noncreatable ] coclass ClientLineQA { [default] interface IClientLineQA; }; [ uuid(F8E55614-4C00-11D3-80BC-00105A653379), helpstring("NameKeyDataEntryWrapper Class") ] coclass NameKeyDataEntryWrapper { [default] interface INameKeyDataEntry; }; }; #endif