

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0555 */
/* Compiler settings for sensorsapi.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __sensorsapi_h__
#define __sensorsapi_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __ISensorManager_FWD_DEFINED__
#define __ISensorManager_FWD_DEFINED__
typedef interface ISensorManager ISensorManager;
#endif 	/* __ISensorManager_FWD_DEFINED__ */


#ifndef __ISensorCollection_FWD_DEFINED__
#define __ISensorCollection_FWD_DEFINED__
typedef interface ISensorCollection ISensorCollection;
#endif 	/* __ISensorCollection_FWD_DEFINED__ */


#ifndef __ISensor_FWD_DEFINED__
#define __ISensor_FWD_DEFINED__
typedef interface ISensor ISensor;
#endif 	/* __ISensor_FWD_DEFINED__ */


#ifndef __ISensorDataReport_FWD_DEFINED__
#define __ISensorDataReport_FWD_DEFINED__
typedef interface ISensorDataReport ISensorDataReport;
#endif 	/* __ISensorDataReport_FWD_DEFINED__ */


#ifndef __ISensorManagerEvents_FWD_DEFINED__
#define __ISensorManagerEvents_FWD_DEFINED__
typedef interface ISensorManagerEvents ISensorManagerEvents;
#endif 	/* __ISensorManagerEvents_FWD_DEFINED__ */


#ifndef __ISensorEvents_FWD_DEFINED__
#define __ISensorEvents_FWD_DEFINED__
typedef interface ISensorEvents ISensorEvents;
#endif 	/* __ISensorEvents_FWD_DEFINED__ */


#ifndef __ILogicalSensorManager_FWD_DEFINED__
#define __ILogicalSensorManager_FWD_DEFINED__
typedef interface ILogicalSensorManager ILogicalSensorManager;
#endif 	/* __ILogicalSensorManager_FWD_DEFINED__ */


#ifndef __SensorManager_FWD_DEFINED__
#define __SensorManager_FWD_DEFINED__

#ifdef __cplusplus
typedef class SensorManager SensorManager;
#else
typedef struct SensorManager SensorManager;
#endif /* __cplusplus */

#endif 	/* __SensorManager_FWD_DEFINED__ */


#ifndef __SensorCollection_FWD_DEFINED__
#define __SensorCollection_FWD_DEFINED__

#ifdef __cplusplus
typedef class SensorCollection SensorCollection;
#else
typedef struct SensorCollection SensorCollection;
#endif /* __cplusplus */

#endif 	/* __SensorCollection_FWD_DEFINED__ */


#ifndef __Sensor_FWD_DEFINED__
#define __Sensor_FWD_DEFINED__

#ifdef __cplusplus
typedef class Sensor Sensor;
#else
typedef struct Sensor Sensor;
#endif /* __cplusplus */

#endif 	/* __Sensor_FWD_DEFINED__ */


#ifndef __SensorDataReport_FWD_DEFINED__
#define __SensorDataReport_FWD_DEFINED__

#ifdef __cplusplus
typedef class SensorDataReport SensorDataReport;
#else
typedef struct SensorDataReport SensorDataReport;
#endif /* __cplusplus */

#endif 	/* __SensorDataReport_FWD_DEFINED__ */


#ifndef __LogicalSensorManager_FWD_DEFINED__
#define __LogicalSensorManager_FWD_DEFINED__

#ifdef __cplusplus
typedef class LogicalSensorManager LogicalSensorManager;
#else
typedef struct LogicalSensorManager LogicalSensorManager;
#endif /* __cplusplus */

#endif 	/* __LogicalSensorManager_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
#include "propsys.h"
#include "PortableDeviceTypes.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_sensorsapi_0000_0000 */
/* [local] */ 

typedef /* [public][public][public][public] */ 
enum __MIDL___MIDL_itf_sensorsapi_0000_0000_0001
    {	SENSOR_STATE_MIN	= 0,
	SENSOR_STATE_READY	= SENSOR_STATE_MIN,
	SENSOR_STATE_NOT_AVAILABLE	= ( SENSOR_STATE_READY + 1 ) ,
	SENSOR_STATE_NO_DATA	= ( SENSOR_STATE_NOT_AVAILABLE + 1 ) ,
	SENSOR_STATE_INITIALIZING	= ( SENSOR_STATE_NO_DATA + 1 ) ,
	SENSOR_STATE_ACCESS_DENIED	= ( SENSOR_STATE_INITIALIZING + 1 ) ,
	SENSOR_STATE_ERROR	= ( SENSOR_STATE_ACCESS_DENIED + 1 ) ,
	SENSOR_STATE_MAX	= SENSOR_STATE_ERROR
    } 	SensorState;

typedef /* [public] */ 
enum __MIDL___MIDL_itf_sensorsapi_0000_0000_0002
    {	SENSOR_CONNECTION_TYPE_PC_INTEGRATED	= 0,
	SENSOR_CONNECTION_TYPE_PC_ATTACHED	= ( SENSOR_CONNECTION_TYPE_PC_INTEGRATED + 1 ) ,
	SENSOR_CONNECTION_TYPE_PC_EXTERNAL	= ( SENSOR_CONNECTION_TYPE_PC_ATTACHED + 1 ) 
    } 	SensorConnectionType;

typedef 
enum LOCATION_DESIRED_ACCURACY
    {	LOCATION_DESIRED_ACCURACY_DEFAULT	= 0,
	LOCATION_DESIRED_ACCURACY_HIGH	= ( LOCATION_DESIRED_ACCURACY_DEFAULT + 1 ) 
    } 	LOCATION_DESIRED_ACCURACY;

typedef GUID SENSOR_CATEGORY_ID;

typedef REFGUID REFSENSOR_CATEGORY_ID;

typedef GUID SENSOR_TYPE_ID;

typedef REFGUID REFSENSOR_TYPE_ID;

typedef GUID SENSOR_ID;

typedef REFGUID REFSENSOR_ID;









extern RPC_IF_HANDLE __MIDL_itf_sensorsapi_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_sensorsapi_0000_0000_v0_0_s_ifspec;

#ifndef __ISensorManager_INTERFACE_DEFINED__
#define __ISensorManager_INTERFACE_DEFINED__

/* interface ISensorManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISensorManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BD77DB67-45A8-42DC-8D00-6DCF15F8377A")
    ISensorManager : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSensorsByCategory( 
            /* [in] */ __RPC__in REFSENSOR_CATEGORY_ID sensorCategory,
            /* [out] */ __RPC__deref_out_opt ISensorCollection **ppSensorsFound) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSensorsByType( 
            /* [in] */ __RPC__in REFSENSOR_TYPE_ID sensorType,
            /* [out] */ __RPC__deref_out_opt ISensorCollection **ppSensorsFound) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSensorByID( 
            /* [in] */ __RPC__in REFSENSOR_ID sensorID,
            /* [out] */ __RPC__deref_out_opt ISensor **ppSensor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEventSink( 
            /* [in] */ __RPC__in_opt ISensorManagerEvents *pEvents) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RequestPermissions( 
            /* [in] */ __RPC__in HWND hParent,
            /* [in] */ __RPC__in_opt ISensorCollection *pSensors,
            /* [in] */ BOOL fModal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensorManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensorManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSensorsByCategory )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in REFSENSOR_CATEGORY_ID sensorCategory,
            /* [out] */ __RPC__deref_out_opt ISensorCollection **ppSensorsFound);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSensorsByType )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in REFSENSOR_TYPE_ID sensorType,
            /* [out] */ __RPC__deref_out_opt ISensorCollection **ppSensorsFound);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSensorByID )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in REFSENSOR_ID sensorID,
            /* [out] */ __RPC__deref_out_opt ISensor **ppSensor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEventSink )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in_opt ISensorManagerEvents *pEvents);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RequestPermissions )( 
            __RPC__in ISensorManager * This,
            /* [in] */ __RPC__in HWND hParent,
            /* [in] */ __RPC__in_opt ISensorCollection *pSensors,
            /* [in] */ BOOL fModal);
        
        END_INTERFACE
    } ISensorManagerVtbl;

    interface ISensorManager
    {
        CONST_VTBL struct ISensorManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensorManager_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensorManager_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensorManager_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensorManager_GetSensorsByCategory(This,sensorCategory,ppSensorsFound)	\
    ( (This)->lpVtbl -> GetSensorsByCategory(This,sensorCategory,ppSensorsFound) ) 

#define ISensorManager_GetSensorsByType(This,sensorType,ppSensorsFound)	\
    ( (This)->lpVtbl -> GetSensorsByType(This,sensorType,ppSensorsFound) ) 

#define ISensorManager_GetSensorByID(This,sensorID,ppSensor)	\
    ( (This)->lpVtbl -> GetSensorByID(This,sensorID,ppSensor) ) 

#define ISensorManager_SetEventSink(This,pEvents)	\
    ( (This)->lpVtbl -> SetEventSink(This,pEvents) ) 

#define ISensorManager_RequestPermissions(This,hParent,pSensors,fModal)	\
    ( (This)->lpVtbl -> RequestPermissions(This,hParent,pSensors,fModal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensorManager_INTERFACE_DEFINED__ */


#ifndef __ISensorCollection_INTERFACE_DEFINED__
#define __ISensorCollection_INTERFACE_DEFINED__

/* interface ISensorCollection */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISensorCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("23571E11-E545-4DD8-A337-B89BF44B10DF")
    ISensorCollection : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ ULONG ulIndex,
            /* [out] */ __RPC__deref_out_opt ISensor **ppSensor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [out] */ __RPC__out ULONG *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ __RPC__in_opt ISensor *pSensor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ __RPC__in_opt ISensor *pSensor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveByID( 
            /* [in] */ __RPC__in REFSENSOR_ID sensorID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensorCollection * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensorCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensorCollection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in ISensorCollection * This,
            /* [in] */ ULONG ulIndex,
            /* [out] */ __RPC__deref_out_opt ISensor **ppSensor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            __RPC__in ISensorCollection * This,
            /* [out] */ __RPC__out ULONG *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            __RPC__in ISensorCollection * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            __RPC__in ISensorCollection * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveByID )( 
            __RPC__in ISensorCollection * This,
            /* [in] */ __RPC__in REFSENSOR_ID sensorID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            __RPC__in ISensorCollection * This);
        
        END_INTERFACE
    } ISensorCollectionVtbl;

    interface ISensorCollection
    {
        CONST_VTBL struct ISensorCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensorCollection_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensorCollection_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensorCollection_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensorCollection_GetAt(This,ulIndex,ppSensor)	\
    ( (This)->lpVtbl -> GetAt(This,ulIndex,ppSensor) ) 

#define ISensorCollection_GetCount(This,pCount)	\
    ( (This)->lpVtbl -> GetCount(This,pCount) ) 

#define ISensorCollection_Add(This,pSensor)	\
    ( (This)->lpVtbl -> Add(This,pSensor) ) 

#define ISensorCollection_Remove(This,pSensor)	\
    ( (This)->lpVtbl -> Remove(This,pSensor) ) 

#define ISensorCollection_RemoveByID(This,sensorID)	\
    ( (This)->lpVtbl -> RemoveByID(This,sensorID) ) 

#define ISensorCollection_Clear(This)	\
    ( (This)->lpVtbl -> Clear(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensorCollection_INTERFACE_DEFINED__ */


#ifndef __ISensor_INTERFACE_DEFINED__
#define __ISensor_INTERFACE_DEFINED__

/* interface ISensor */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISensor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5FA08F80-2657-458E-AF75-46F73FA6AC5C")
    ISensor : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetID( 
            /* [out] */ __RPC__out SENSOR_ID *pID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCategory( 
            /* [out] */ __RPC__out SENSOR_CATEGORY_ID *pSensorCategory) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetType( 
            /* [out] */ __RPC__out SENSOR_TYPE_ID *pSensorType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFriendlyName( 
            /* [out] */ __RPC__deref_out_opt BSTR *pFriendlyName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetProperty( 
            /* [in] */ __RPC__in REFPROPERTYKEY key,
            /* [out] */ __RPC__out PROPVARIANT *pProperty) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetProperties( 
            /* [in] */ __RPC__in_opt IPortableDeviceKeyCollection *pKeys,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppProperties) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSupportedDataFields( 
            /* [out] */ __RPC__deref_out_opt IPortableDeviceKeyCollection **ppDataFields) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetProperties( 
            /* [in] */ __RPC__in_opt IPortableDeviceValues *pProperties,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppResults) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SupportsDataField( 
            /* [in] */ __RPC__in REFPROPERTYKEY key,
            /* [out] */ __RPC__out VARIANT_BOOL *pIsSupported) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetState( 
            /* [out] */ __RPC__out SensorState *pState) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ __RPC__deref_out_opt ISensorDataReport **ppDataReport) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SupportsEvent( 
            /* [in] */ __RPC__in REFGUID eventGuid,
            /* [out] */ __RPC__out VARIANT_BOOL *pIsSupported) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEventInterest( 
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pCount) GUID **ppValues,
            /* [out] */ __RPC__out ULONG *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEventInterest( 
            /* [size_is][in] */ __RPC__in_ecount_full(count) GUID *pValues,
            /* [in] */ ULONG count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEventSink( 
            /* [in] */ __RPC__in_opt ISensorEvents *pEvents) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetID )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__out SENSOR_ID *pID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCategory )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__out SENSOR_CATEGORY_ID *pSensorCategory);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetType )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__out SENSOR_TYPE_ID *pSensorType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFriendlyName )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__deref_out_opt BSTR *pFriendlyName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in REFPROPERTYKEY key,
            /* [out] */ __RPC__out PROPVARIANT *pProperty);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetProperties )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in_opt IPortableDeviceKeyCollection *pKeys,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppProperties);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSupportedDataFields )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceKeyCollection **ppDataFields);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetProperties )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in_opt IPortableDeviceValues *pProperties,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppResults);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SupportsDataField )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in REFPROPERTYKEY key,
            /* [out] */ __RPC__out VARIANT_BOOL *pIsSupported);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetState )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__out SensorState *pState);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            __RPC__in ISensor * This,
            /* [out] */ __RPC__deref_out_opt ISensorDataReport **ppDataReport);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SupportsEvent )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in REFGUID eventGuid,
            /* [out] */ __RPC__out VARIANT_BOOL *pIsSupported);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEventInterest )( 
            __RPC__in ISensor * This,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*pCount) GUID **ppValues,
            /* [out] */ __RPC__out ULONG *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEventInterest )( 
            __RPC__in ISensor * This,
            /* [size_is][in] */ __RPC__in_ecount_full(count) GUID *pValues,
            /* [in] */ ULONG count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEventSink )( 
            __RPC__in ISensor * This,
            /* [in] */ __RPC__in_opt ISensorEvents *pEvents);
        
        END_INTERFACE
    } ISensorVtbl;

    interface ISensor
    {
        CONST_VTBL struct ISensorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensor_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensor_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensor_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensor_GetID(This,pID)	\
    ( (This)->lpVtbl -> GetID(This,pID) ) 

#define ISensor_GetCategory(This,pSensorCategory)	\
    ( (This)->lpVtbl -> GetCategory(This,pSensorCategory) ) 

#define ISensor_GetType(This,pSensorType)	\
    ( (This)->lpVtbl -> GetType(This,pSensorType) ) 

#define ISensor_GetFriendlyName(This,pFriendlyName)	\
    ( (This)->lpVtbl -> GetFriendlyName(This,pFriendlyName) ) 

#define ISensor_GetProperty(This,key,pProperty)	\
    ( (This)->lpVtbl -> GetProperty(This,key,pProperty) ) 

#define ISensor_GetProperties(This,pKeys,ppProperties)	\
    ( (This)->lpVtbl -> GetProperties(This,pKeys,ppProperties) ) 

#define ISensor_GetSupportedDataFields(This,ppDataFields)	\
    ( (This)->lpVtbl -> GetSupportedDataFields(This,ppDataFields) ) 

#define ISensor_SetProperties(This,pProperties,ppResults)	\
    ( (This)->lpVtbl -> SetProperties(This,pProperties,ppResults) ) 

#define ISensor_SupportsDataField(This,key,pIsSupported)	\
    ( (This)->lpVtbl -> SupportsDataField(This,key,pIsSupported) ) 

#define ISensor_GetState(This,pState)	\
    ( (This)->lpVtbl -> GetState(This,pState) ) 

#define ISensor_GetData(This,ppDataReport)	\
    ( (This)->lpVtbl -> GetData(This,ppDataReport) ) 

#define ISensor_SupportsEvent(This,eventGuid,pIsSupported)	\
    ( (This)->lpVtbl -> SupportsEvent(This,eventGuid,pIsSupported) ) 

#define ISensor_GetEventInterest(This,ppValues,pCount)	\
    ( (This)->lpVtbl -> GetEventInterest(This,ppValues,pCount) ) 

#define ISensor_SetEventInterest(This,pValues,count)	\
    ( (This)->lpVtbl -> SetEventInterest(This,pValues,count) ) 

#define ISensor_SetEventSink(This,pEvents)	\
    ( (This)->lpVtbl -> SetEventSink(This,pEvents) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensor_INTERFACE_DEFINED__ */


#ifndef __ISensorDataReport_INTERFACE_DEFINED__
#define __ISensorDataReport_INTERFACE_DEFINED__

/* interface ISensorDataReport */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ISensorDataReport;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0AB9DF9B-C4B5-4796-8898-0470706A2E1D")
    ISensorDataReport : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTimestamp( 
            /* [out] */ __RPC__out SYSTEMTIME *pTimeStamp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSensorValue( 
            /* [in] */ __RPC__in REFPROPERTYKEY pKey,
            /* [out] */ __RPC__out PROPVARIANT *pValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSensorValues( 
            /* [in] */ __RPC__in_opt IPortableDeviceKeyCollection *pKeys,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppValues) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorDataReportVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensorDataReport * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensorDataReport * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensorDataReport * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTimestamp )( 
            __RPC__in ISensorDataReport * This,
            /* [out] */ __RPC__out SYSTEMTIME *pTimeStamp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSensorValue )( 
            __RPC__in ISensorDataReport * This,
            /* [in] */ __RPC__in REFPROPERTYKEY pKey,
            /* [out] */ __RPC__out PROPVARIANT *pValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSensorValues )( 
            __RPC__in ISensorDataReport * This,
            /* [in] */ __RPC__in_opt IPortableDeviceKeyCollection *pKeys,
            /* [out] */ __RPC__deref_out_opt IPortableDeviceValues **ppValues);
        
        END_INTERFACE
    } ISensorDataReportVtbl;

    interface ISensorDataReport
    {
        CONST_VTBL struct ISensorDataReportVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensorDataReport_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensorDataReport_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensorDataReport_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensorDataReport_GetTimestamp(This,pTimeStamp)	\
    ( (This)->lpVtbl -> GetTimestamp(This,pTimeStamp) ) 

#define ISensorDataReport_GetSensorValue(This,pKey,pValue)	\
    ( (This)->lpVtbl -> GetSensorValue(This,pKey,pValue) ) 

#define ISensorDataReport_GetSensorValues(This,pKeys,ppValues)	\
    ( (This)->lpVtbl -> GetSensorValues(This,pKeys,ppValues) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensorDataReport_INTERFACE_DEFINED__ */


#ifndef __ISensorManagerEvents_INTERFACE_DEFINED__
#define __ISensorManagerEvents_INTERFACE_DEFINED__

/* interface ISensorManagerEvents */
/* [object][helpstring][uuid] */ 


EXTERN_C const IID IID_ISensorManagerEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9B3B0B86-266A-4AAD-B21F-FDE5501001B7")
    ISensorManagerEvents : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnSensorEnter( 
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ SensorState state) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorManagerEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensorManagerEvents * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensorManagerEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensorManagerEvents * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnSensorEnter )( 
            __RPC__in ISensorManagerEvents * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ SensorState state);
        
        END_INTERFACE
    } ISensorManagerEventsVtbl;

    interface ISensorManagerEvents
    {
        CONST_VTBL struct ISensorManagerEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensorManagerEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensorManagerEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensorManagerEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensorManagerEvents_OnSensorEnter(This,pSensor,state)	\
    ( (This)->lpVtbl -> OnSensorEnter(This,pSensor,state) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensorManagerEvents_INTERFACE_DEFINED__ */


#ifndef __ISensorEvents_INTERFACE_DEFINED__
#define __ISensorEvents_INTERFACE_DEFINED__

/* interface ISensorEvents */
/* [object][helpstring][uuid] */ 


EXTERN_C const IID IID_ISensorEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5D8DCC91-4641-47E7-B7C3-B74F48A6C391")
    ISensorEvents : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnStateChanged( 
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ SensorState state) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnDataUpdated( 
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ __RPC__in_opt ISensorDataReport *pNewData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnEvent( 
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ __RPC__in REFGUID eventID,
            /* [in] */ __RPC__in_opt IPortableDeviceValues *pEventData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnLeave( 
            /* [in] */ __RPC__in REFSENSOR_ID ID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ISensorEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISensorEvents * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISensorEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISensorEvents * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnStateChanged )( 
            __RPC__in ISensorEvents * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ SensorState state);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnDataUpdated )( 
            __RPC__in ISensorEvents * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ __RPC__in_opt ISensorDataReport *pNewData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnEvent )( 
            __RPC__in ISensorEvents * This,
            /* [in] */ __RPC__in_opt ISensor *pSensor,
            /* [in] */ __RPC__in REFGUID eventID,
            /* [in] */ __RPC__in_opt IPortableDeviceValues *pEventData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnLeave )( 
            __RPC__in ISensorEvents * This,
            /* [in] */ __RPC__in REFSENSOR_ID ID);
        
        END_INTERFACE
    } ISensorEventsVtbl;

    interface ISensorEvents
    {
        CONST_VTBL struct ISensorEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ISensorEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ISensorEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ISensorEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ISensorEvents_OnStateChanged(This,pSensor,state)	\
    ( (This)->lpVtbl -> OnStateChanged(This,pSensor,state) ) 

#define ISensorEvents_OnDataUpdated(This,pSensor,pNewData)	\
    ( (This)->lpVtbl -> OnDataUpdated(This,pSensor,pNewData) ) 

#define ISensorEvents_OnEvent(This,pSensor,eventID,pEventData)	\
    ( (This)->lpVtbl -> OnEvent(This,pSensor,eventID,pEventData) ) 

#define ISensorEvents_OnLeave(This,ID)	\
    ( (This)->lpVtbl -> OnLeave(This,ID) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISensorEvents_INTERFACE_DEFINED__ */


#ifndef __ILogicalSensorManager_INTERFACE_DEFINED__
#define __ILogicalSensorManager_INTERFACE_DEFINED__

/* interface ILogicalSensorManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_ILogicalSensorManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7490B4D4-1BE9-469A-9743-37A27C1D80AF")
    ILogicalSensorManager : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Connect( 
            /* [in] */ __RPC__in REFGUID logicalID,
            /* [in] */ __RPC__in_opt IPropertyStore *pPropertyStore) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Uninstall( 
            /* [in] */ __RPC__in REFGUID logicalID) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Disconnect( 
            /* [in] */ __RPC__in REFGUID logicalID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ILogicalSensorManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ILogicalSensorManager * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ILogicalSensorManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ILogicalSensorManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Connect )( 
            __RPC__in ILogicalSensorManager * This,
            /* [in] */ __RPC__in REFGUID logicalID,
            /* [in] */ __RPC__in_opt IPropertyStore *pPropertyStore);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Uninstall )( 
            __RPC__in ILogicalSensorManager * This,
            /* [in] */ __RPC__in REFGUID logicalID);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( 
            __RPC__in ILogicalSensorManager * This,
            /* [in] */ __RPC__in REFGUID logicalID);
        
        END_INTERFACE
    } ILogicalSensorManagerVtbl;

    interface ILogicalSensorManager
    {
        CONST_VTBL struct ILogicalSensorManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define ILogicalSensorManager_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define ILogicalSensorManager_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define ILogicalSensorManager_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define ILogicalSensorManager_Connect(This,logicalID,pPropertyStore)	\
    ( (This)->lpVtbl -> Connect(This,logicalID,pPropertyStore) ) 

#define ILogicalSensorManager_Uninstall(This,logicalID)	\
    ( (This)->lpVtbl -> Uninstall(This,logicalID) ) 

#define ILogicalSensorManager_Disconnect(This,logicalID)	\
    ( (This)->lpVtbl -> Disconnect(This,logicalID) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ILogicalSensorManager_INTERFACE_DEFINED__ */



#ifndef __SensorsApiLib_LIBRARY_DEFINED__
#define __SensorsApiLib_LIBRARY_DEFINED__

/* library SensorsApiLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_SensorsApiLib;

EXTERN_C const CLSID CLSID_SensorManager;

#ifdef __cplusplus

class DECLSPEC_UUID("77A1C827-FCD2-4689-8915-9D613CC5FA3E")
SensorManager;
#endif

EXTERN_C const CLSID CLSID_SensorCollection;

#ifdef __cplusplus

class DECLSPEC_UUID("79C43ADB-A429-469F-AA39-2F2B74B75937")
SensorCollection;
#endif

EXTERN_C const CLSID CLSID_Sensor;

#ifdef __cplusplus

class DECLSPEC_UUID("E97CED00-523A-4133-BF6F-D3A2DAE7F6BA")
Sensor;
#endif

EXTERN_C const CLSID CLSID_SensorDataReport;

#ifdef __cplusplus

class DECLSPEC_UUID("4EA9D6EF-694B-4218-8816-CCDA8DA74BBA")
SensorDataReport;
#endif

EXTERN_C const CLSID CLSID_LogicalSensorManager;

#ifdef __cplusplus

class DECLSPEC_UUID("50A7B286-7D23-41E6-9440-4DAEE00DC5F0")
LogicalSensorManager;
#endif
#endif /* __SensorsApiLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     __RPC__in unsigned long *, __RPC__in BSTR * ); 

unsigned long             __RPC_USER  HWND_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in HWND * ); 
unsigned char * __RPC_USER  HWND_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); 
unsigned char * __RPC_USER  HWND_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); 
void                      __RPC_USER  HWND_UserFree(     __RPC__in unsigned long *, __RPC__in HWND * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree(     __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); 

unsigned long             __RPC_USER  BSTR_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out BSTR * ); 
void                      __RPC_USER  BSTR_UserFree64(     __RPC__in unsigned long *, __RPC__in BSTR * ); 

unsigned long             __RPC_USER  HWND_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in HWND * ); 
unsigned char * __RPC_USER  HWND_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HWND * ); 
unsigned char * __RPC_USER  HWND_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HWND * ); 
void                      __RPC_USER  HWND_UserFree64(     __RPC__in unsigned long *, __RPC__in HWND * ); 

unsigned long             __RPC_USER  LPSAFEARRAY_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in LPSAFEARRAY * ); 
unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out LPSAFEARRAY * ); 
void                      __RPC_USER  LPSAFEARRAY_UserFree64(     __RPC__in unsigned long *, __RPC__in LPSAFEARRAY * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif



