Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

89 lines
2.3 KiB

// SAFIntercomClient.h : Declaration of the CSAFIntercomClient
#ifndef __SAFIntercomClient_H_
#define __SAFIntercomClient_H_
//JP:not in connectivitylib.h//#include "resource.h" // main symbols
#include <MPC_COM.h>
#include <MPC_Utils.h>
#include <rtccore.h>
/////////////////////////////////////////////////////////////////////////////
// CSAFIntercomClient
class ATL_NO_VTABLE CSAFIntercomClient : // Hungarian safi
public IDispatchImpl < ISAFIntercomClient, &IID_ISAFIntercomClient, &LIBID_HelpCenterTypeLib >,
public MPC::ConnectionPointImpl< CSAFIntercomClient, &DIID_DSAFIntercomClientEvents, MPC::CComSafeMultiThreadModel >,
public IRTCEventNotification
{
private:
CComPtr<IRTCClient> m_pRTCClient;
CComPtr<IRTCSession> m_pRTCSession;
DWORD m_dwSinkCookie;
BOOL m_bOnCall;
BOOL m_bRTCInit;
BOOL m_bAdvised;
int m_iSamplingRate;
MPC::CComPtrThreadNeutral<IDispatch> m_sink_onVoiceConnected;
MPC::CComPtrThreadNeutral<IDispatch> m_sink_onVoiceDisconnected;
MPC::CComPtrThreadNeutral<IDispatch> m_sink_onVoiceDisabled;
HRESULT Fire_onVoiceConnected (ISAFIntercomClient * safe);
HRESULT Fire_onVoiceDisconnected (ISAFIntercomClient * safe);
HRESULT Fire_onVoiceDisabled (ISAFIntercomClient * safe);
// Worker functions
HRESULT Init();
HRESULT Cleanup();
public:
CSAFIntercomClient();
~CSAFIntercomClient();
//DECLARE_PROTECT_FINAL_CONSTRUCT() // TODO: JP: Do we need this here?
BEGIN_COM_MAP(CSAFIntercomClient)
COM_INTERFACE_ENTRY(ISAFIntercomClient)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IRTCEventNotification)
END_COM_MAP()
// ISAFIntercomClient
public:
STDMETHOD(Disconnect)();
STDMETHOD(Connect)(BSTR bstrIP, BSTR bstrKey);
STDMETHOD(RunSetupWizard)();
STDMETHOD(Exit)();
STDMETHOD(put_onVoiceConnected) (/* in */ IDispatch * function);
STDMETHOD(put_onVoiceDisconnected) (/* in */ IDispatch * function);
STDMETHOD(put_onVoiceDisabled) (/* in */ IDispatch * function);
STDMETHOD(put_SamplingRate) (/* in */ LONG newVal);
STDMETHOD(get_SamplingRate) (/* out, retval */ LONG * pVal);
// IRTCEventNotification
STDMETHOD(Event)( RTC_EVENT RTCEvent, IDispatch * pEvent );
STDMETHOD(OnSessionChange) (IRTCSession *pSession,
RTC_SESSION_STATE nState,
HRESULT ResCode);
};
#endif //__SAFIntercomClient_H_