diff options
Diffstat (limited to 'src/inc/clrprivhosting.idl')
-rw-r--r-- | src/inc/clrprivhosting.idl | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/src/inc/clrprivhosting.idl b/src/inc/clrprivhosting.idl new file mode 100644 index 0000000000..b288c286b6 --- /dev/null +++ b/src/inc/clrprivhosting.idl @@ -0,0 +1,92 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +import "unknwn.idl"; +import "CLRPrivBinding.idl"; + +//===================================================================================================================== +// Forward declarations +interface ICLRPrivRuntime; + +//===================================================================================================================== +// CLRPrivHosting coclass +//===================================================================================================================== +[ + uuid("EDA73987-E6C0-42BF-A6B7-073F7B24D8C7") +] +library CLRPrivHosting +{ + //================================================================================================================= + // CLRPrivRuntime + //================================================================================================================= + [ + uuid(BC1B53A8-DCBC-43B2-BB17-1E4061447AE8) + ] + coclass CLRPrivRuntime + { + [default] interface ICLRPrivRuntime; + }; +}; + +//===================================================================================================================== +// ICLRPrivRuntime +//===================================================================================================================== +[ + uuid(BC1B53A8-DCBC-43B2-BB17-1E4061447AE9), + version(1.0), + local +] +interface ICLRPrivRuntime : IUnknown +{ + /********************************************************************************** + ** Used for accessing additional hosting functionality. + ** + ** rclsid - the CoClass from which to request the interface. + ** riid - the IID of the interface being requested. + ** ppUnk - receives the interface pointer value. + **********************************************************************************/ + HRESULT GetInterface( + [in] REFCLSID rclsid, + [in] REFIID riid, + [out, iid_is(riid), retval] LPVOID *ppUnk); + + /********************************************************************************** + ** Creates a domain using the provided binder for the root default bind context. + ** + ** pwzFriendlyName - the name to associate with the domain. + ** pBinder - the binder to use for root-level binds in the default context. + ** pdwAppDomainId - receives the ID of the created domain. + **********************************************************************************/ + HRESULT CreateAppDomain( + [in, string] LPCWSTR pwzFriendlyName, + [in] ICLRPrivBinder * pBinder, + [out, retval] LPDWORD pdwAppDomainId); + + /********************************************************************************** + ** Creates a native-callable function pointer to the specified method. + ** + ** appDomainID - the domain in which to create the delegate. + ** wszAssemblyName - the name of the assembly in which the method is defined. + ** wszClassName - the name of the class (including namespace) in which the method + ** is defined. + ** wszMethodName - the name of the method for which to create a delegate. + ** ppvDelegate - receives the delegate pointer value. + **********************************************************************************/ + HRESULT CreateDelegate( + [in] DWORD appDomainID, + [in, string] LPCWSTR wszAssemblyName, + [in, string] LPCWSTR wszClassName, + [in, string] LPCWSTR wszMethodName, + [out, retval] LPVOID * ppvDelegate); + + /********************************************************************************** + ** Creates an AppX appdomain and executes entrypoint method of an executable there + ** + **********************************************************************************/ + HRESULT ExecuteMain( + [in] ICLRPrivBinder * pBinder, + [out, retval] int * pRetVal + ); +}; + |