20#ifndef INCLUDED_CLI_URE_SOURCE_UNO_BRIDGE_CLI_PROXY_H
21#define INCLUDED_CLI_URE_SOURCE_UNO_BRIDGE_CLI_PROXY_H
23#include "uno/environment.hxx"
24#include "uno/mapping.hxx"
25#include "uno/dispatcher.h"
31namespace srrp = System::Runtime::Remoting::Proxies;
32namespace srrm = System::Runtime::Remoting::Messaging;
33namespace srr = System::Runtime::Remoting;
34namespace sr = System::Reflection;
35namespace sc = System::Collections;
45 typelib_InterfaceTypeDescription* td);
57 public srr::IRemotingTypeInfo
83#if OSL_DEBUG_LEVEL >= 2
100 uno_Interface * pUnoI,
101 typelib_InterfaceTypeDescription* pTd,
102 const OUString& oid);
105 virtual srrm::IMessage^
Invoke(srrm::IMessage^ msg)
override;
113 typelib_InterfaceTypeDescription* pTd);
121 virtual bool CanCastTo(System::Type^ fromType, System::Object^ o);
125 System::String^
get()
129 void set(System::String^ name)
139 uno_Interface * pUnoI,
140 typelib_InterfaceTypeDescription* pTD,
141 const OUString& oid );
144 array<System::Object^>^ outArgs,
145 typelib_InterfaceMethodTypeDescription* mtd,
146 srrm::IMessage^ msg, System::Object^ exc);
149 gcnew System::String(
"__MethodName");
153 gcnew System::String(
"__CallContext");
155 gcnew System::String(
"System.Object");
157 gcnew System::String(
"__MethodSignature");
160 gcnew System::String(
"GetHashCode");
166 srrm::LogicalCallContext^ context,
167 srrm::IMethodCallMessage^ mcm);
179 const gcroot<System::String^>
m_oid;
237 const OUString& usOid);
241 System::Object^ cliI,
243 OUString
const & usOid );
278 const OUString & usMethodName,
282 struct _uno_Interface * pUnoI,
283 const struct _typelib_TypeDescription * pMemberType,
UnoInterfaceInfo(Bridge const *bridge, uno_Interface *unoI, typelib_InterfaceTypeDescription *td)
typelib_InterfaceTypeDescription * m_typeDesc
sc::ArrayList m_listAdditionalProxies
The list is filled with additional UnoInterfaceProxy object due to aggregation via bridges.
int m_numUnoIfaces
The number of UNO interfaces this proxy represents.
static System::String m_GetType_String
virtual srrm::IMessage Invoke(srrm::IMessage^ msg) override
RealProxy::Invoke.
int m_nlistAdditionalProxies
static System::String m_methodNameString
static System::String m_CallContextString
virtual property System::String TypeName
static srrm::IMessage constructReturnMessage(System::Object^ retVal, array< System::Object^>^ outArgs, typelib_InterfaceMethodTypeDescription *mtd, srrm::IMessage^ msg, System::Object^ exc)
If the argument args is NULL then this function is called for an attribute method (either setXXX or g...
srrm::IMessage invokeObject(sc::IDictionary^ properties, srrm::LogicalCallContext^ context, srrm::IMethodCallMessage^ mcm)
virtual bool CanCastTo(System::Type^ fromType, System::Object^ o)
static System::String m_methodSignatureString
rtl_uString * _sInterfaces
The string contains all names of UNO interfaces which are represented by this proxy.
static System::Object create(Bridge *bridge, uno_Interface *pUnoI, typelib_InterfaceTypeDescription *pTd, const OUString &oid)
Creates a proxy and registers it on the dot NET side.
static System::String m_GetHashCode_String
static System::String m_typeNameString
System::String m_sTypeName
used for IRemotingTypeInfo.TypeName
void set(System::String^ name)
sc::ArrayList m_listIfaces
The list is filled with UnoInterfaceInfo objects.
void addUnoInterface(uno_Interface *pUnoI, typelib_InterfaceTypeDescription *pTd)
Must be called from within a synchronized section.
static System::String m_ToString_String
static System::String m_ArgsString
UnoInterfaceInfo findInfo(::System::Type ^ type)
static System::String m_system_Object_String
UnoInterfaceProxy(Bridge *bridge, uno_Interface *pUnoI, typelib_InterfaceTypeDescription *pTD, const OUString &oid)
static System::String m_Equals_String
struct _typelib_TypeDescription typelib_TypeDescription
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
An instance of Bridge represents exactly one mapping therefore either m_cli2uno or m_uno2cli is valid...
gcroot< array< sr::MethodInfo^>^> m_arInterfaceMethodInfos
This array is similar to m_arMethodInfos but it contains the MethodInfo objects of the interface (not...
gcroot< System::Type^> m_type
sr::MethodInfo getMethodInfo(int nUnoFunctionPos, const OUString &usMethodName, MethodKind mk)
Obtains a MethodInfo which can be used to invoke the cli object.
const gcroot< System::Object^> m_cliI
void SAL_CALL uno_DispatchMethod(struct _uno_Interface *pUnoI, const struct _typelib_TypeDescription *pMemberType, void *pReturn, void *pArgs[], uno_Any **ppException)
const gcroot< System::String^> m_oid
static uno_Interface * create(Bridge const *bridge, System::Object^ cliI, typelib_TypeDescription const *TD, OUString const &usOid)
gcroot< array< sr::MethodInfo^>^> m_arMethodInfos
The array contains MethodInfos of the cli object.
const css::uno::TypeDescription m_unoType
int m_nInheritedInterfaces
Count of inherited interfaces of the cli interface.
void makeMethodInfos()
Prepares an array (m_arMethoInfos) containing MethodInfo object of the interface and all inherited in...
gcroot< array< System::Int32 >^> m_arUnoPosToCliPos
Maps the position of the method in the UNO interface to the position of the corresponding MethodInfo ...
gcroot< array< System::Int32^>^> m_arInterfaceMethodCount
Contains the number of methods of each interface.
oslInterlockedCount m_ref
CliProxy(Bridge const *bridge, System::Object^ cliI, typelib_TypeDescription const *pTD, const OUString &usOid)