/*++ Copyright (c) 1997 Microsoft Corporation Module Name: faxport.h Abstract: This module contains the port class definitions. Author: Wesley Witt (wesw) 20-May-1997 Revision History: --*/ #ifndef __FAXPORT_H_ #define __FAXPORT_H_ #include "resource.h" #include #include "faxsvr.h" class ATL_NO_VTABLE CFaxPorts : public CComObjectRootEx, public CComCoClass, public IDispatchImpl { public: CFaxPorts(); ~CFaxPorts(); BOOL Init(CFaxServer *pFaxServer); DECLARE_REGISTRY_RESOURCEID(IDR_FAXPORTS) BEGIN_COM_MAP(CFaxPorts) COM_INTERFACE_ENTRY(IFaxPorts) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() // IFaxPorts public: STDMETHOD(get_Item)(long Index, /*[out, retval]*/ VARIANT *pVal); STDMETHOD(get_Count)(/*[out, retval]*/ long *pVal); private: CFaxServer *m_pFaxServer; DWORD m_LastFaxError; DWORD m_PortCount; CComVariant *m_VarVect; }; class ATL_NO_VTABLE CFaxPort : public CComObjectRootEx, public CComCoClass, public IDispatchImpl { public: CFaxPort(); ~CFaxPort(); BOOL Initialize(CFaxServer*,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPCWSTR); HANDLE GetPortHandle() { return m_FaxPortHandle; }; DWORD GetDeviceId() { return m_DeviceId; }; BSTR GetDeviceName() { return m_Name; }; DECLARE_REGISTRY_RESOURCEID(IDR_FAXPORT) BEGIN_COM_MAP(CFaxPort) COM_INTERFACE_ENTRY(IFaxPort) COM_INTERFACE_ENTRY(IDispatch) END_COM_MAP() public: STDMETHOD(GetStatus)(/*[out, retval]*/ VARIANT* retval); STDMETHOD(GetRoutingMethods)(VARIANT* retval); STDMETHOD(get_CanModify)(/*[out, retval]*/ BOOL *pVal); STDMETHOD(get_Priority)(/*[out, retval]*/ long *pVal); STDMETHOD(put_Priority)(/*[in]*/ long newVal); STDMETHOD(get_Receive)(/*[out, retval]*/ BOOL *pVal); STDMETHOD(put_Receive)(/*[in]*/ BOOL newVal); STDMETHOD(get_Send)(/*[out, retval]*/ BOOL *pVal); STDMETHOD(put_Send)(/*[in]*/ BOOL newVal); STDMETHOD(get_Tsid)(/*[out, retval]*/ BSTR *pVal); STDMETHOD(put_Tsid)(/*[in]*/ BSTR newVal); STDMETHOD(get_Csid)(/*[out, retval]*/ BSTR *pVal); STDMETHOD(put_Csid)(/*[in]*/ BSTR newVal); STDMETHOD(get_Rings)(/*[out, retval]*/ long *pVal); STDMETHOD(put_Rings)(/*[in]*/ long newVal); STDMETHOD(get_DeviceId)(/*[out, retval]*/ long *pVal); STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal); private: BOOL ChangePort(); CFaxServer *m_pFaxServer; HANDLE m_FaxPortHandle; BOOL m_Send; BOOL m_Receive; BOOL m_Modify; BSTR m_Name; BSTR m_Csid; BSTR m_Tsid; DWORD m_LastFaxError; DWORD m_DeviceId; DWORD m_Rings; DWORD m_Priority; }; #endif //__FAXPORT_H_