windows-nt/Source/XPSP1/NT/printscan/fax/activefax/faxport.h
2020-09-26 16:20:57 +08:00

118 lines
3.1 KiB
C++

/*++
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 <winfax.h>
#include "faxsvr.h"
class ATL_NO_VTABLE CFaxPorts :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFaxPorts, &CLSID_FaxPorts>,
public IDispatchImpl<IFaxPorts, &IID_IFaxPorts, &LIBID_FAXCOMLib>
{
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<CComSingleThreadModel>,
public CComCoClass<CFaxPort, &CLSID_FaxPort>,
public IDispatchImpl<IFaxPort, &IID_IFaxPort, &LIBID_FAXCOMLib>
{
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_