//
//  Copyright © 2002, RESON Inc. All Rights Reserved.
//
//  No part of this file may be reproduced or transmitted in any form or by
//  any means, electronic or mechanical, including photocopy, recording, or
//  information storage or retrieval system, without permission in writing
//  from RESON Inc.
//
//  Filename:   6046Options.h
//
//  Project:    6046
//
//  Author(s):  W. Arcus.
//
//  Purpose:    
//              
//
//  Notes:      
//

#if !defined(AFX_6046OPTIONS_H__F24F8527_A68B_4FC1_A26B_185A5AA0D01E__INCLUDED_)
#define AFX_6046OPTIONS_H__F24F8527_A68B_4FC1_A26B_185A5AA0D01E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#pragma warning( disable : 4100 )           // Microsoft's STL is dirty so disable benign warnings.
#include <memory>
#pragma warning( default : 4100 )

class CRESON6046Hasp;

class C6046HaspOptions
{
public:

    ///////////////
    // Services.

                                C6046HaspOptions            (   void );

    virtual                    ~C6046HaspOptions            (   void );

    bool                        IsKeyPresent                (   void )  const;

    bool                        IsPayloadControllerEnabled  (   void )  const;

#ifdef _RESON_INTERNAL_

    void                        SetPayloadControllerEnable  (   const bool             &rbEnable );

#endif

private:

    ///////////////
    // Attributes.

    mutable std::auto_ptr<CRESON6046Hasp>   m_Hasp;

    ///////////////
    // Services.

    void                        DeleteHasp                  (   void );

                                C6046HaspOptions            (   const C6046HaspOptions &rRhs );     // Not implemented thus private.
    C6046HaspOptions &          operator    =               (   const C6046HaspOptions &rRhs );     // Not implemented thus private.

};

#endif // !defined(AFX_6046OPTIONS_H__F24F8527_A68B_4FC1_A26B_185A5AA0D01E__INCLUDED_)

