

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


 /* File created by MIDL compiler version 6.00.0366 */
/* at Wed Apr 22 10:23:02 2009
 */
/* Compiler settings for .\IgfxExt.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    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__ 475
#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 __IgfxExt_h__
#define __IgfxExt_h__

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

/* Forward Declarations */ 

#ifndef __ICUIExtClientNotify_FWD_DEFINED__
#define __ICUIExtClientNotify_FWD_DEFINED__
typedef interface ICUIExtClientNotify ICUIExtClientNotify;
#endif 	/* __ICUIExtClientNotify_FWD_DEFINED__ */


#ifndef __ICUIExternal2_FWD_DEFINED__
#define __ICUIExternal2_FWD_DEFINED__
typedef interface ICUIExternal2 ICUIExternal2;
#endif 	/* __ICUIExternal2_FWD_DEFINED__ */


#ifndef __ICUIExternal3_FWD_DEFINED__
#define __ICUIExternal3_FWD_DEFINED__
typedef interface ICUIExternal3 ICUIExternal3;
#endif 	/* __ICUIExternal3_FWD_DEFINED__ */


#ifndef __ICUIExternal4_FWD_DEFINED__
#define __ICUIExternal4_FWD_DEFINED__
typedef interface ICUIExternal4 ICUIExternal4;
#endif 	/* __ICUIExternal4_FWD_DEFINED__ */


#ifndef __ICUIExternal5_FWD_DEFINED__
#define __ICUIExternal5_FWD_DEFINED__
typedef interface ICUIExternal5 ICUIExternal5;
#endif 	/* __ICUIExternal5_FWD_DEFINED__ */


#ifndef __ICUIExternalDual_FWD_DEFINED__
#define __ICUIExternalDual_FWD_DEFINED__
typedef interface ICUIExternalDual ICUIExternalDual;
#endif 	/* __ICUIExternalDual_FWD_DEFINED__ */


#ifndef __ICUIExternal6_FWD_DEFINED__
#define __ICUIExternal6_FWD_DEFINED__
typedef interface ICUIExternal6 ICUIExternal6;
#endif 	/* __ICUIExternal6_FWD_DEFINED__ */


#ifndef __ICUIExternal7_FWD_DEFINED__
#define __ICUIExternal7_FWD_DEFINED__
typedef interface ICUIExternal7 ICUIExternal7;
#endif 	/* __ICUIExternal7_FWD_DEFINED__ */


#ifndef __ICUIExternal8_FWD_DEFINED__
#define __ICUIExternal8_FWD_DEFINED__
typedef interface ICUIExternal8 ICUIExternal8;
#endif 	/* __ICUIExternal8_FWD_DEFINED__ */


#ifndef __CUIExternal_FWD_DEFINED__
#define __CUIExternal_FWD_DEFINED__

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

#endif 	/* __CUIExternal_FWD_DEFINED__ */


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

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf_IgfxExt_0000 */
/* [local] */ 

//Copyright© 2003, Intel Corporation


extern RPC_IF_HANDLE __MIDL_itf_IgfxExt_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_IgfxExt_0000_v0_0_s_ifspec;

#ifndef __ICUIExtClientNotify_INTERFACE_DEFINED__
#define __ICUIExtClientNotify_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExtClientNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F4C4B98D-F59E-4a0c-AEE9-801E0CDB671E")
    ICUIExtClientNotify : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Notify( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExtClientNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExtClientNotify * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExtClientNotify * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExtClientNotify * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Notify )( 
            ICUIExtClientNotify * This);
        
        END_INTERFACE
    } ICUIExtClientNotifyVtbl;

    interface ICUIExtClientNotify
    {
        CONST_VTBL struct ICUIExtClientNotifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExtClientNotify_Notify(This)	\
    (This)->lpVtbl -> Notify(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExtClientNotify_Notify_Proxy( 
    ICUIExtClientNotify * This);


void __RPC_STUB ICUIExtClientNotify_Notify_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExtClientNotify_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal2_INTERFACE_DEFINED__
#define __ICUIExternal2_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("27E7234F-429F-4787-AC8F-8AADDED01355")
    ICUIExternal2 : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumActiveDevices( 
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetConfiguration( 
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SupportedEvents( 
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterEvent( 
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterNotify( 
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeRegisterEvent( 
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeRegisterNotify( 
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetConfiguration( 
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal2 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal2 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal2 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal2 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal2 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal2 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal2 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal2 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal2 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal2Vtbl;

    interface ICUIExternal2
    {
        CONST_VTBL struct ICUIExternal2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal2_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal2_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal2_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal2_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal2_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal2_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal2_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal2_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_EnumActiveDevices_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ BSTR strDeviceName,
    /* [in] */ UINT nIndex,
    /* [out] */ DWORD *puidMonitor,
    /* [out] */ DWORD *pdwDeviceType);


void __RPC_STUB ICUIExternal2_EnumActiveDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_GetConfiguration_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ REFGUID guid,
    /* [in] */ UINT nSize,
    /* [size_is][out][in] */ BYTE *pDisplayConfig,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_GetConfiguration_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_get_SupportedEvents_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ DWORD uidMonitor,
    /* [retval][out] */ DWORD *pVal);


void __RPC_STUB ICUIExternal2_get_SupportedEvents_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_RegisterEvent_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ BSTR strEventName,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ DWORD dwEventMask,
    /* [out] */ UINT *pRegistrationID,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_RegisterEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_RegisterNotify_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ ICUIExtClientNotify *pExtClientNotify,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ DWORD dwEventMask,
    /* [out] */ UINT *pRegistrationID,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_RegisterNotify_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_DeRegisterEvent_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ UINT nRegistrationID,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_DeRegisterEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_DeRegisterNotify_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ UINT nRegistrationID,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_DeRegisterNotify_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal2_SetConfiguration_Proxy( 
    ICUIExternal2 * This,
    /* [in] */ REFGUID guid,
    /* [in] */ UINT nSize,
    /* [size_is][in] */ BYTE *pDisplayConfig,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal2_SetConfiguration_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal2_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal3_INTERFACE_DEFINED__
#define __ICUIExternal3_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("70F8C65F-06AA-443b-9E6B-7C73808F07E5")
    ICUIExternal3 : public ICUIExternal2
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ChangeActiveDevices( 
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumAttachableDevices( 
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal3 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal3 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal3 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal3 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal3 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal3 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal3 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal3 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal3 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal3 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal3 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        END_INTERFACE
    } ICUIExternal3Vtbl;

    interface ICUIExternal3
    {
        CONST_VTBL struct ICUIExternal3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal3_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal3_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal3_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal3_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal3_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal3_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal3_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal3_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal3_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal3_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal3_ChangeActiveDevices_Proxy( 
    ICUIExternal3 * This,
    /* [in] */ REFGUID guid,
    /* [in] */ UINT nSize,
    /* [size_is][in] */ BYTE *pDeviceDisplays,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal3_ChangeActiveDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal3_EnumAttachableDevices_Proxy( 
    ICUIExternal3 * This,
    /* [in] */ BSTR strDeviceName,
    /* [in] */ UINT nIndex,
    /* [out] */ DWORD *puidMonitor,
    /* [out] */ DWORD *pdwDeviceType,
    /* [out] */ DWORD *pdwStatus);


void __RPC_STUB ICUIExternal3_EnumAttachableDevices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal3_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal4_INTERFACE_DEFINED__
#define __ICUIExternal4_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal4;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5DC5B31E-0C28-4679-B8D8-32CF2F9BACED")
    ICUIExternal4 : public ICUIExternal3
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsOpen( 
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsClose( 
            /* [in] */ UINT Handle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsGetMax( 
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsGetMin( 
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsGetCurrent( 
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsSetCurrent( 
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MccsResetControl( 
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal4Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal4 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal4 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal4 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal4 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal4 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal4 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal4 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal4 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal4 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal4 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal4 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal4 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal4 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsOpen )( 
            ICUIExternal4 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsClose )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMax )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMin )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetCurrent )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsSetCurrent )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsResetControl )( 
            ICUIExternal4 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal4Vtbl;

    interface ICUIExternal4
    {
        CONST_VTBL struct ICUIExternal4Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal4_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal4_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal4_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal4_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal4_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal4_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal4_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal4_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal4_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal4_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)


#define ICUIExternal4_MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)

#define ICUIExternal4_MccsClose(This,Handle)	\
    (This)->lpVtbl -> MccsClose(This,Handle)

#define ICUIExternal4_MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal4_MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal4_MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal4_MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)

#define ICUIExternal4_MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsOpen_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ DWORD uidMonitor,
    /* [out] */ UINT *pHandle,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsOpen_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsClose_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle);


void __RPC_STUB ICUIExternal4_MccsClose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsGetMax_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle,
    /* [in] */ UINT ControlCode,
    /* [in] */ UINT Size,
    /* [out] */ DWORD *pVal,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsGetMax_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsGetMin_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle,
    /* [in] */ UINT ControlCode,
    /* [in] */ UINT Size,
    /* [out] */ DWORD *pVal,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsGetMin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsGetCurrent_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle,
    /* [in] */ UINT ControlCode,
    /* [in] */ UINT Size,
    /* [out] */ DWORD *pVal,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsGetCurrent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsSetCurrent_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle,
    /* [in] */ UINT ControlCode,
    /* [in] */ UINT Size,
    /* [in] */ DWORD Val,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsSetCurrent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal4_MccsResetControl_Proxy( 
    ICUIExternal4 * This,
    /* [in] */ UINT Handle,
    /* [in] */ UINT ControlCode,
    /* [in] */ UINT Size,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal4_MccsResetControl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal4_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal5_INTERFACE_DEFINED__
#define __ICUIExternal5_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal5;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A05C525D-B4CB-4108-BFF7-1ACF1A14F00A")
    ICUIExternal5 : public ICUIExternal4
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPowerConsCaps( 
            /* [out] */ DWORD *pCaps,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPowerPolicy( 
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPowerPolicy( 
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal5Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal5 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal5 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal5 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal5 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal5 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal5 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal5 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal5 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal5 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal5 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal5 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal5 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal5 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsOpen )( 
            ICUIExternal5 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsClose )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMax )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMin )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetCurrent )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsSetCurrent )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsResetControl )( 
            ICUIExternal5 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerConsCaps )( 
            ICUIExternal5 * This,
            /* [out] */ DWORD *pCaps,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerPolicy )( 
            ICUIExternal5 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPowerPolicy )( 
            ICUIExternal5 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal5Vtbl;

    interface ICUIExternal5
    {
        CONST_VTBL struct ICUIExternal5Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal5_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal5_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal5_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal5_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal5_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal5_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal5_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal5_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal5_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal5_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)


#define ICUIExternal5_MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)

#define ICUIExternal5_MccsClose(This,Handle)	\
    (This)->lpVtbl -> MccsClose(This,Handle)

#define ICUIExternal5_MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal5_MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal5_MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal5_MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)

#define ICUIExternal5_MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)


#define ICUIExternal5_GetPowerConsCaps(This,pCaps,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerConsCaps(This,pCaps,pExtraErrorCode)

#define ICUIExternal5_GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)

#define ICUIExternal5_SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal5_GetPowerConsCaps_Proxy( 
    ICUIExternal5 * This,
    /* [out] */ DWORD *pCaps,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal5_GetPowerConsCaps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal5_GetPowerPolicy_Proxy( 
    ICUIExternal5 * This,
    /* [in] */ DWORD PolicyID,
    /* [in] */ REFGUID guid,
    /* [in] */ UINT nSize,
    /* [size_is][out] */ BYTE *pPolicy,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal5_GetPowerPolicy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal5_SetPowerPolicy_Proxy( 
    ICUIExternal5 * This,
    /* [in] */ DWORD PolicyID,
    /* [in] */ REFGUID guid,
    /* [in] */ UINT nSize,
    /* [size_is][in] */ BYTE *pPolicy,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal5_SetPowerPolicy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal5_INTERFACE_DEFINED__ */


#ifndef __ICUIExternalDual_INTERFACE_DEFINED__
#define __ICUIExternalDual_INTERFACE_DEFINED__

/* interface ICUIExternalDual */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ICUIExternalDual;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3473E05A-3317-4df5-9098-E5387C94D1B0")
    ICUIExternalDual : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternalDualVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternalDual * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternalDual * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternalDual * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            ICUIExternalDual * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            ICUIExternalDual * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            ICUIExternalDual * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ICUIExternalDual * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } ICUIExternalDualVtbl;

    interface ICUIExternalDual
    {
        CONST_VTBL struct ICUIExternalDualVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternalDual_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define ICUIExternalDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define ICUIExternalDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define ICUIExternalDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ICUIExternalDual_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal6_INTERFACE_DEFINED__
#define __ICUIExternal6_INTERFACE_DEFINED__

/* interface ICUIExternal6 */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_ICUIExternal6;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AFB6489F-4515-44AA-8DF7-ED28EA46283C")
    ICUIExternal6 : public ICUIExternal5
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetColorSettings( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetColorSettings( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAspectScalingCapabilities( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwOperatingMode,
            /* [out] */ DWORD *pdwAspectScalingCaps,
            /* [out] */ DWORD *pdwCurrentAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAspectScalingPreference( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAvailableConnectors( 
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *dwAvailableConnectors,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetConnectorSelection( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwConnector,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetConnectorAttachedStatus( 
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnectors,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetConnectorSelection( 
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnector,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCloneRefreshRates( 
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRArray,
            /* [size_is][out] */ BYTE *pPrimaryRR,
            /* [size_is][out] */ BYTE *pSecondaryRR,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetCloneView( 
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRStruct,
            /* [size_is][in] */ BYTE *pPrimRRToSet,
            /* [size_is][in] */ BYTE *pSecndRRToSet,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetCloneViewRotate( 
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ DWORD dwPrimOrientation,
            /* [in] */ DWORD dwSecndOrientation,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTvParameters( 
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTvParameters( 
            /* [in] */ ULONG uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ReinitEncoders( 
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal6Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal6 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal6 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal6 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal6 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal6 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal6 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal6 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal6 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal6 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal6 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal6 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal6 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsOpen )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsClose )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMax )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMin )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetCurrent )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsSetCurrent )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsResetControl )( 
            ICUIExternal6 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerConsCaps )( 
            ICUIExternal6 * This,
            /* [out] */ DWORD *pCaps,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerPolicy )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPowerPolicy )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColorSettings )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetColorSettings )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAspectScalingCapabilities )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwOperatingMode,
            /* [out] */ DWORD *pdwAspectScalingCaps,
            /* [out] */ DWORD *pdwCurrentAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAspectScalingPreference )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAvailableConnectors )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *dwAvailableConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConnectorSelection )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorAttachedStatus )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorSelection )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCloneRefreshRates )( 
            ICUIExternal6 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRArray,
            /* [size_is][out] */ BYTE *pPrimaryRR,
            /* [size_is][out] */ BYTE *pSecondaryRR,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneView )( 
            ICUIExternal6 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRStruct,
            /* [size_is][in] */ BYTE *pPrimRRToSet,
            /* [size_is][in] */ BYTE *pSecndRRToSet,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneViewRotate )( 
            ICUIExternal6 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ DWORD dwPrimOrientation,
            /* [in] */ DWORD dwSecndOrientation,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTvParameters )( 
            ICUIExternal6 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTvParameters )( 
            ICUIExternal6 * This,
            /* [in] */ ULONG uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReinitEncoders )( 
            ICUIExternal6 * This,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal6Vtbl;

    interface ICUIExternal6
    {
        CONST_VTBL struct ICUIExternal6Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal6_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal6_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal6_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal6_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal6_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal6_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal6_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal6_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal6_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal6_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)


#define ICUIExternal6_MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)

#define ICUIExternal6_MccsClose(This,Handle)	\
    (This)->lpVtbl -> MccsClose(This,Handle)

#define ICUIExternal6_MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal6_MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal6_MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal6_MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)

#define ICUIExternal6_MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)


#define ICUIExternal6_GetPowerConsCaps(This,pCaps,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerConsCaps(This,pCaps,pExtraErrorCode)

#define ICUIExternal6_GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)

#define ICUIExternal6_SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)


#define ICUIExternal6_GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal6_SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal6_GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal6_SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal6_GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)

#define ICUIExternal6_SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)

#define ICUIExternal6_GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)

#define ICUIExternal6_GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)

#define ICUIExternal6_GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)	\
    (This)->lpVtbl -> GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)

#define ICUIExternal6_SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)

#define ICUIExternal6_SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)

#define ICUIExternal6_GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal6_SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal6_ReinitEncoders(This,pExtraErrorCode)	\
    (This)->lpVtbl -> ReinitEncoders(This,pExtraErrorCode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetColorSettings_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ UINT nSize,
    /* [size_is][out] */ BYTE *pColorSettings,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetColorSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetColorSettings_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ UINT nSize,
    /* [size_is][in] */ BYTE *pColorSettings,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetColorSettings_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetAspectScalingCapabilities_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ DWORD dwOperatingMode,
    /* [out] */ DWORD *pdwAspectScalingCaps,
    /* [out] */ DWORD *pdwCurrentAspectScalingPreference,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetAspectScalingCapabilities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetAspectScalingPreference_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ DWORD dwAspectScalingPreference,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetAspectScalingPreference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetAvailableConnectors_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [out] */ DWORD *dwAvailableConnectors,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetAvailableConnectors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetConnectorSelection_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ DWORD dwConnector,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetConnectorSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetConnectorAttachedStatus_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [out] */ DWORD *pdwConnectors,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetConnectorAttachedStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetConnectorSelection_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [out] */ DWORD *pdwConnector,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetConnectorSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetCloneRefreshRates_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ UINT nSizeCfg,
    /* [size_is][in] */ BYTE *pDispCfg,
    /* [in] */ UINT nSizeRRArray,
    /* [size_is][out] */ BYTE *pPrimaryRR,
    /* [size_is][out] */ BYTE *pSecondaryRR,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetCloneRefreshRates_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetCloneView_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ UINT nSizeCfg,
    /* [size_is][in] */ BYTE *pDispCfg,
    /* [in] */ UINT nSizeRRStruct,
    /* [size_is][in] */ BYTE *pPrimRRToSet,
    /* [size_is][in] */ BYTE *pSecndRRToSet,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetCloneView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetCloneViewRotate_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ UINT nSizeCfg,
    /* [size_is][in] */ BYTE *pDispCfg,
    /* [in] */ DWORD dwPrimOrientation,
    /* [in] */ DWORD dwSecndOrientation,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetCloneViewRotate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_GetTvParameters_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ DWORD uidMonitor,
    /* [in] */ UINT nSize,
    /* [size_is][out] */ BYTE *pTvParameter,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_GetTvParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_SetTvParameters_Proxy( 
    ICUIExternal6 * This,
    /* [in] */ ULONG uidMonitor,
    /* [in] */ UINT nSize,
    /* [size_is][in] */ BYTE *pTvParameter,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_SetTvParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal6_ReinitEncoders_Proxy( 
    ICUIExternal6 * This,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal6_ReinitEncoders_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal6_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal7_INTERFACE_DEFINED__
#define __ICUIExternal7_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal7;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2CED2F89-627B-4E5D-840F-B126EE858CD8")
    ICUIExternal7 : public ICUIExternal6
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal7Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal7 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal7 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal7 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal7 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal7 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal7 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal7 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal7 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal7 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal7 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal7 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal7 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsOpen )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsClose )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMax )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMin )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetCurrent )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsSetCurrent )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsResetControl )( 
            ICUIExternal7 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerConsCaps )( 
            ICUIExternal7 * This,
            /* [out] */ DWORD *pCaps,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerPolicy )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPowerPolicy )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColorSettings )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetColorSettings )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAspectScalingCapabilities )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwOperatingMode,
            /* [out] */ DWORD *pdwAspectScalingCaps,
            /* [out] */ DWORD *pdwCurrentAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAspectScalingPreference )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAvailableConnectors )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *dwAvailableConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConnectorSelection )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorAttachedStatus )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorSelection )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCloneRefreshRates )( 
            ICUIExternal7 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRArray,
            /* [size_is][out] */ BYTE *pPrimaryRR,
            /* [size_is][out] */ BYTE *pSecondaryRR,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneView )( 
            ICUIExternal7 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRStruct,
            /* [size_is][in] */ BYTE *pPrimRRToSet,
            /* [size_is][in] */ BYTE *pSecndRRToSet,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneViewRotate )( 
            ICUIExternal7 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ DWORD dwPrimOrientation,
            /* [in] */ DWORD dwSecndOrientation,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTvParameters )( 
            ICUIExternal7 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTvParameters )( 
            ICUIExternal7 * This,
            /* [in] */ ULONG uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReinitEncoders )( 
            ICUIExternal7 * This,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal7Vtbl;

    interface ICUIExternal7
    {
        CONST_VTBL struct ICUIExternal7Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal7_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal7_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal7_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal7_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal7_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal7_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal7_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal7_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal7_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal7_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)


#define ICUIExternal7_MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)

#define ICUIExternal7_MccsClose(This,Handle)	\
    (This)->lpVtbl -> MccsClose(This,Handle)

#define ICUIExternal7_MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal7_MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal7_MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal7_MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)

#define ICUIExternal7_MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)


#define ICUIExternal7_GetPowerConsCaps(This,pCaps,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerConsCaps(This,pCaps,pExtraErrorCode)

#define ICUIExternal7_GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)

#define ICUIExternal7_SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)


#define ICUIExternal7_GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal7_SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal7_GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal7_SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal7_GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)

#define ICUIExternal7_SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)

#define ICUIExternal7_GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)

#define ICUIExternal7_GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)

#define ICUIExternal7_GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)	\
    (This)->lpVtbl -> GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)

#define ICUIExternal7_SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)

#define ICUIExternal7_SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)

#define ICUIExternal7_GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal7_SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal7_ReinitEncoders(This,pExtraErrorCode)	\
    (This)->lpVtbl -> ReinitEncoders(This,pExtraErrorCode)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ICUIExternal7_INTERFACE_DEFINED__ */


#ifndef __ICUIExternal8_INTERFACE_DEFINED__
#define __ICUIExternal8_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_ICUIExternal8;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F932C038-6484-45ca-8FA1-7C8C279F7AEE")
    ICUIExternal8 : public ICUIExternal7
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDeviceData( 
            /* [in] */ REFGUID guid,
            /* [in] */ DWORD dwSize,
            /* [size_is][out][in] */ BYTE *pData,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDeviceData( 
            /* [in] */ REFGUID guid,
            /* [in] */ DWORD dwSize,
            /* [size_is][out][in] */ BYTE *pData,
            /* [out] */ DWORD *pExtraErrorCode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct ICUIExternal8Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICUIExternal8 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICUIExternal8 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICUIExternal8 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumActiveDevices )( 
            ICUIExternal8 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConfiguration )( 
            ICUIExternal8 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedEvents )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [retval][out] */ DWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
            ICUIExternal8 * This,
            /* [in] */ BSTR strEventName,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterNotify )( 
            ICUIExternal8 * This,
            /* [in] */ ICUIExtClientNotify *pExtClientNotify,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwEventMask,
            /* [out] */ UINT *pRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterEvent )( 
            ICUIExternal8 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeRegisterNotify )( 
            ICUIExternal8 * This,
            /* [in] */ UINT nRegistrationID,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConfiguration )( 
            ICUIExternal8 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDisplayConfig,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ChangeActiveDevices )( 
            ICUIExternal8 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pDeviceDisplays,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumAttachableDevices )( 
            ICUIExternal8 * This,
            /* [in] */ BSTR strDeviceName,
            /* [in] */ UINT nIndex,
            /* [out] */ DWORD *puidMonitor,
            /* [out] */ DWORD *pdwDeviceType,
            /* [out] */ DWORD *pdwStatus);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsOpen )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ UINT *pHandle,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsClose )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMax )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetMin )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsGetCurrent )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pVal,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsSetCurrent )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [in] */ DWORD Val,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MccsResetControl )( 
            ICUIExternal8 * This,
            /* [in] */ UINT Handle,
            /* [in] */ UINT ControlCode,
            /* [in] */ UINT Size,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerConsCaps )( 
            ICUIExternal8 * This,
            /* [out] */ DWORD *pCaps,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPowerPolicy )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPowerPolicy )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD PolicyID,
            /* [in] */ REFGUID guid,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pPolicy,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetColorSettings )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetColorSettings )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pColorSettings,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAspectScalingCapabilities )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwOperatingMode,
            /* [out] */ DWORD *pdwAspectScalingCaps,
            /* [out] */ DWORD *pdwCurrentAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAspectScalingPreference )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwAspectScalingPreference,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAvailableConnectors )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *dwAvailableConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetConnectorSelection )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ DWORD dwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorAttachedStatus )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnectors,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetConnectorSelection )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [out] */ DWORD *pdwConnector,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCloneRefreshRates )( 
            ICUIExternal8 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRArray,
            /* [size_is][out] */ BYTE *pPrimaryRR,
            /* [size_is][out] */ BYTE *pSecondaryRR,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneView )( 
            ICUIExternal8 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ UINT nSizeRRStruct,
            /* [size_is][in] */ BYTE *pPrimRRToSet,
            /* [size_is][in] */ BYTE *pSecndRRToSet,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCloneViewRotate )( 
            ICUIExternal8 * This,
            /* [in] */ UINT nSizeCfg,
            /* [size_is][in] */ BYTE *pDispCfg,
            /* [in] */ DWORD dwPrimOrientation,
            /* [in] */ DWORD dwSecndOrientation,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTvParameters )( 
            ICUIExternal8 * This,
            /* [in] */ DWORD uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][out] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTvParameters )( 
            ICUIExternal8 * This,
            /* [in] */ ULONG uidMonitor,
            /* [in] */ UINT nSize,
            /* [size_is][in] */ BYTE *pTvParameter,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReinitEncoders )( 
            ICUIExternal8 * This,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDeviceData )( 
            ICUIExternal8 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ DWORD dwSize,
            /* [size_is][out][in] */ BYTE *pData,
            /* [out] */ DWORD *pExtraErrorCode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDeviceData )( 
            ICUIExternal8 * This,
            /* [in] */ REFGUID guid,
            /* [in] */ DWORD dwSize,
            /* [size_is][out][in] */ BYTE *pData,
            /* [out] */ DWORD *pExtraErrorCode);
        
        END_INTERFACE
    } ICUIExternal8Vtbl;

    interface ICUIExternal8
    {
        CONST_VTBL struct ICUIExternal8Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ICUIExternal8_EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)	\
    (This)->lpVtbl -> EnumActiveDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType)

#define ICUIExternal8_GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)

#define ICUIExternal8_get_SupportedEvents(This,uidMonitor,pVal)	\
    (This)->lpVtbl -> get_SupportedEvents(This,uidMonitor,pVal)

#define ICUIExternal8_RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterEvent(This,strEventName,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal8_RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> RegisterNotify(This,pExtClientNotify,uidMonitor,dwEventMask,pRegistrationID,pExtraErrorCode)

#define ICUIExternal8_DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterEvent(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal8_DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)	\
    (This)->lpVtbl -> DeRegisterNotify(This,nRegistrationID,pExtraErrorCode)

#define ICUIExternal8_SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConfiguration(This,guid,nSize,pDisplayConfig,pExtraErrorCode)


#define ICUIExternal8_ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)	\
    (This)->lpVtbl -> ChangeActiveDevices(This,guid,nSize,pDeviceDisplays,pExtraErrorCode)

#define ICUIExternal8_EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)	\
    (This)->lpVtbl -> EnumAttachableDevices(This,strDeviceName,nIndex,puidMonitor,pdwDeviceType,pdwStatus)


#define ICUIExternal8_MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsOpen(This,uidMonitor,pHandle,pExtraErrorCode)

#define ICUIExternal8_MccsClose(This,Handle)	\
    (This)->lpVtbl -> MccsClose(This,Handle)

#define ICUIExternal8_MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMax(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal8_MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetMin(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal8_MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsGetCurrent(This,Handle,ControlCode,Size,pVal,pExtraErrorCode)

#define ICUIExternal8_MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsSetCurrent(This,Handle,ControlCode,Size,Val,pExtraErrorCode)

#define ICUIExternal8_MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)	\
    (This)->lpVtbl -> MccsResetControl(This,Handle,ControlCode,Size,pExtraErrorCode)


#define ICUIExternal8_GetPowerConsCaps(This,pCaps,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerConsCaps(This,pCaps,pExtraErrorCode)

#define ICUIExternal8_GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> GetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)

#define ICUIExternal8_SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)	\
    (This)->lpVtbl -> SetPowerPolicy(This,PolicyID,guid,nSize,pPolicy,pExtraErrorCode)


#define ICUIExternal8_GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> GetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal8_SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)	\
    (This)->lpVtbl -> SetColorSettings(This,uidMonitor,nSize,pColorSettings,pExtraErrorCode)

#define ICUIExternal8_GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAspectScalingCapabilities(This,uidMonitor,dwOperatingMode,pdwAspectScalingCaps,pdwCurrentAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal8_SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)	\
    (This)->lpVtbl -> SetAspectScalingPreference(This,uidMonitor,dwAspectScalingPreference,pExtraErrorCode)

#define ICUIExternal8_GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetAvailableConnectors(This,uidMonitor,dwAvailableConnectors,pExtraErrorCode)

#define ICUIExternal8_SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> SetConnectorSelection(This,uidMonitor,dwConnector,pExtraErrorCode)

#define ICUIExternal8_GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorAttachedStatus(This,uidMonitor,pdwConnectors,pExtraErrorCode)

#define ICUIExternal8_GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)	\
    (This)->lpVtbl -> GetConnectorSelection(This,uidMonitor,pdwConnector,pExtraErrorCode)

#define ICUIExternal8_GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)	\
    (This)->lpVtbl -> GetCloneRefreshRates(This,nSizeCfg,pDispCfg,nSizeRRArray,pPrimaryRR,pSecondaryRR,pExtraErrorCode)

#define ICUIExternal8_SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneView(This,nSizeCfg,pDispCfg,nSizeRRStruct,pPrimRRToSet,pSecndRRToSet,pExtraErrorCode)

#define ICUIExternal8_SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)	\
    (This)->lpVtbl -> SetCloneViewRotate(This,nSizeCfg,pDispCfg,dwPrimOrientation,dwSecndOrientation,pExtraErrorCode)

#define ICUIExternal8_GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> GetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal8_SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)	\
    (This)->lpVtbl -> SetTvParameters(This,uidMonitor,nSize,pTvParameter,pExtraErrorCode)

#define ICUIExternal8_ReinitEncoders(This,pExtraErrorCode)	\
    (This)->lpVtbl -> ReinitEncoders(This,pExtraErrorCode)



#define ICUIExternal8_GetDeviceData(This,guid,dwSize,pData,pExtraErrorCode)	\
    (This)->lpVtbl -> GetDeviceData(This,guid,dwSize,pData,pExtraErrorCode)

#define ICUIExternal8_SetDeviceData(This,guid,dwSize,pData,pExtraErrorCode)	\
    (This)->lpVtbl -> SetDeviceData(This,guid,dwSize,pData,pExtraErrorCode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal8_GetDeviceData_Proxy( 
    ICUIExternal8 * This,
    /* [in] */ REFGUID guid,
    /* [in] */ DWORD dwSize,
    /* [size_is][out][in] */ BYTE *pData,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal8_GetDeviceData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE ICUIExternal8_SetDeviceData_Proxy( 
    ICUIExternal8 * This,
    /* [in] */ REFGUID guid,
    /* [in] */ DWORD dwSize,
    /* [size_is][out][in] */ BYTE *pData,
    /* [out] */ DWORD *pExtraErrorCode);


void __RPC_STUB ICUIExternal8_SetDeviceData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __ICUIExternal8_INTERFACE_DEFINED__ */



#ifndef __IGFXEXTLib_LIBRARY_DEFINED__
#define __IGFXEXTLib_LIBRARY_DEFINED__

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


EXTERN_C const IID LIBID_IGFXEXTLib;

EXTERN_C const CLSID CLSID_CUIExternal;

#ifdef __cplusplus

class DECLSPEC_UUID("7160A13D-73DA-4CEA-95B9-37356478588A")
CUIExternal;
#endif
#endif /* __IGFXEXTLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


