WindowsXP-SP1/windows/oleacc/oleacc/remoteproxyfactory.h
2020-09-30 16:53:49 +02:00

80 lines
2.1 KiB
C++

// Copyright (c) 1996-2000 Microsoft Corporation
// RemoteProxyFactory.h : Declaration of the CRemoteProxyFactory
#ifndef __REMOTEPROXYFACTORY_H_
#define __REMOTEPROXYFACTORY_H_
#include "resource.h" // main symbols
#include "oleacc_p.h"
extern "C" {
BOOL GetStateImageMapEnt_SameBitness( HWND hwnd, int iImage, DWORD * pdwState, DWORD * pdwRole );
}
/////////////////////////////////////////////////////////////////////////////
// CRemoteProxyFactory
class ATL_NO_VTABLE CRemoteProxyFactory :
public CComObjectRootEx<CComSingleThreadModel>,
#ifdef _WIN64
public CComCoClass<CRemoteProxyFactory, &CLSID_RemoteProxyFactory64>,
#else
public CComCoClass<CRemoteProxyFactory, &CLSID_RemoteProxyFactory32>,
#endif
public IDispatchImpl<IRemoteProxyFactory, &IID_IRemoteProxyFactory, &LIBID_REMOTEPROXY6432Lib>
{
public:
CRemoteProxyFactory(){}
#ifdef _WIN64
DECLARE_REGISTRY_RESOURCEID( IDR_REMOTEPROXYFACTORY64 )
#else
DECLARE_REGISTRY_RESOURCEID( IDR_REMOTEPROXYFACTORY32 )
#endif
DECLARE_NOT_AGGREGATABLE(CRemoteProxyFactory)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CRemoteProxyFactory)
COM_INTERFACE_ENTRY(IRemoteProxyFactory)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
// IRemoteProxyFactory
public:
STDMETHOD(AccessibleProxyFromWindow)(
/*[in]*/ DWORD dwhwnd,
/*[in]*/ long lObjectId,
/*[out]*/ IUnknown **ppUnk
)
{
return CreateStdAccessibleObject(
(HWND)LongToHandle( dwhwnd )
, lObjectId
, IID_IUnknown
, reinterpret_cast<void **>(ppUnk));
}
STDMETHOD(GetStateImageMapEnt)(
/* [in] */ DWORD dwhwnd,
/* [in] */ long iImage,
/* [out] */ DWORD *pdwState,
/* [out] */ DWORD *pdwRole
)
{
if( GetStateImageMapEnt_SameBitness( (HWND)LongToHandle( dwhwnd ), iImage,
pdwState,
pdwRole ) )
{
return S_OK;
}
else
{
return S_FALSE;
}
}
};
#endif //__REMOTEPROXYFACTORY_H_