summaryrefslogtreecommitdiff
path: root/src/inc/clrprivhosting.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/inc/clrprivhosting.idl')
-rw-r--r--src/inc/clrprivhosting.idl92
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
+ );
+};
+