/*****************************************************************************
* Copyright (c) 1990-2000 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/


// PortBChannel.h: interface for the CPortBChannel class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PORTBCHANNEL_H__53298493_D89C_11D1_BAB9_00805F9E3135__INCLUDED_)
#define AFX_PORTBCHANNEL_H__53298493_D89C_11D1_BAB9_00805F9E3135__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "Port.h"
#include "WizChannelInfo.h"

class SERVICE_EXPORTED_CLASS CPortBChannel : public CPort  
{
   DECLARE_DYNAMIC(CPortBChannel)

public:
	CPortBChannel(HKEY const hKeyRoot, CString const strRegPath, CConfigObject const * const pParent);
	virtual ~CPortBChannel();

   virtual BOOL AddChild(void) { ASSERT(FALSE); return FALSE; }

   virtual BOOL SetParameters(void);

   virtual BOOL AddWizardPages(CConfigWizSheet * const pSheet);
   virtual BOOL RemoveWizardPages(CConfigWizSheet * const pSheet);
   virtual BOOL NextWizardPage(int const nState);

   virtual CString GetInformationText(void);
   virtual BOOL DoProperties(void);

   void SetProperties(CString const & strAddress, CString const & strSpid, CString const & strSubAddress) { m_strAddress = strAddress; m_strSpid = strSpid; m_strSubAddress = strSubAddress; }
   void GetProperties(CString & strAddress, CString & strSpid, CString & strSubAddress) { ASSERT(m_fDoProps); strAddress = m_strAddress; strSpid = m_strSpid; strSubAddress = m_strSubAddress;}

   void EnableProperties(BOOL const fEnabled) { m_fDoProps = fEnabled; SetAbility((m_fDoProps) ? CConfigObject::DOPROPERTIES : CConfigObject::NOABILITIES); }
   void EnableSpid(BOOL const fEnabled) { m_fNeedSpid = fEnabled; }
   void EnableSubAddress(BOOL const fEnabled) { m_fNeedSubAddress = fEnabled; }

private:
   BOOL GetParameters(void);
   BOOL GetConfigData(void);

   BOOL m_fDoProps;
   CString m_strAddress;
   BOOL m_fNeedSpid;
   CString m_strSpid;
   BOOL m_fNeedSubAddress;
   CString m_strSubAddress;

   //
   // Wizard stuff
   CConfigWizSheet * m_pwsSheet;

   enum
   {
      WP_UNKNOWN = -1,
      WP_CHANINFO,
      WP_COUNT
   };

   BOOL HandleWizChanInfo(void);
   CWizChannelInfo m_WizChanInfo;
};

#endif // !defined(AFX_PORTBCHANNEL_H__53298493_D89C_11D1_BAB9_00805F9E3135__INCLUDED_)
