/*******************************************************************************
*
*  (C) COPYRIGHT MICROSOFT CORP., 2000
*
*  TITLE:       wiasvc.h
*
*  VERSION:     1.0
*
*  AUTHOR:      ByronC
*
*  DATE:        10 May, 2000
*
*  DESCRIPTION:
*   Class definition for WIA Service manager.  This class controls the 
*   lifetime of the Wia Service.
*
*******************************************************************************/

#ifndef __WIASVC_H__
#define __WIASVC_H__

//
//  All the members of this class are static.  This is because they are essentially
//  accessed as global functions (for example, ANY component that exposes an interface
//  would call AddRef and Release), but the methods and field values are grouped into
//  this class for better containment and maintainability.
//

class CWiaSvc {
public:
    static HRESULT Initialize();

    static bool CanShutdown();
    static unsigned long AddRef();
    static unsigned long Release();
    static void ShutDown();
    static bool ADeviceIsInstalled();
    
private:
    static long s_cActiveInterfaces;    //  Ref count on no. of outstanding interface pointers
    static bool s_bEventDeviceExists;   //  Indicates whether there are any devices capable 
                                        //  of generating events installed on the system.
/*    static HANDLE s_hIdleEvent;         //  Event handle used to detect idle time.  This is the amount of
                                        //  time the service will stay running, even though it has no
                                        //  devices or connections.  Once this expires, it will shutdown,
                                        //  unless a device arrived or a connection was made.
    static DWORD  s_dwIdleTimeout;      //  Specifies the length of the timeout (dw)
*/    
};

#endif