mirror of https://github.com/tongzx/nt5src
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.
117 lines
3.1 KiB
117 lines
3.1 KiB
/*++
|
|
|
|
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_
|