summaryrefslogtreecommitdiff
path: root/src/binder/inc/binderinterface.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binder/inc/binderinterface.hpp')
-rw-r--r--src/binder/inc/binderinterface.hpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/binder/inc/binderinterface.hpp b/src/binder/inc/binderinterface.hpp
new file mode 100644
index 0000000000..a9f0c210ff
--- /dev/null
+++ b/src/binder/inc/binderinterface.hpp
@@ -0,0 +1,69 @@
+// 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.
+// ============================================================
+//
+// BinderInterface.hpp
+//
+
+
+//
+// Defines the public AssemblyBinder interface
+//
+// ============================================================
+
+#ifndef __BINDER_INTERFACE_HPP__
+#define __BINDER_INTERFACE_HPP__
+
+class PEImage;
+class PEAssembly;
+class StringArrayList;
+
+namespace BINDER_SPACE
+{
+ class Assembly;
+ class AssemblyIdentityUTF8;
+};
+
+namespace BinderInterface
+{
+ HRESULT Init();
+
+ HRESULT SetupContext(/* in */ LPCWSTR wszApplicationBase,
+ /* in */ DWORD dwAppDomainId,
+ /* out */ IUnknown **ppIApplicationContext);
+
+ // See code:BINDER_SPACE::AssemblyBinder::GetAssembly for info on fNgenExplicitBind
+ // and fExplicitBindToNativeImage, and see code:CEECompileInfo::LoadAssemblyByPath
+ // for an example of how they're used.
+ HRESULT Bind(/* in */ IUnknown *pIApplicationContext,
+ /* in */ SString &assemblyDisplayName,
+ /* in */ LPCWSTR wszCodeBase,
+ /* in */ PEAssembly *pParentAssembly,
+ /* in */ BOOL fNgenExplicitBind,
+ /* in */ BOOL fExplicitBindToNativeImage,
+ /*out */ BINDER_SPACE::Assembly **ppAssembly);
+
+ //
+ // Called via managed AppDomain.ExecuteAssembly variants and during binding host setup
+ //
+ HRESULT SetupBindingPaths(/* in */ IUnknown *pIApplicationContext,
+ /* in */ SString &sTrustedPlatformAssemblies,
+ /* in */ SString &sPlatformResourceRoots,
+ /* in */ SString &sAppPaths,
+ /* in */ SString &sAppNiPaths);
+
+ //
+ // Called via CoreAssemblySpec::BindToSystem
+ //
+ HRESULT BindToSystem(/* in */ SString &sSystemDirectory,
+ /* out */ BINDER_SPACE::Assembly **ppSystemAssembly,
+ /* in */ bool fBindToNativeImage);
+
+#ifdef BINDER_DEBUG_LOG
+ HRESULT Log(/* in */ LPCWSTR wszMessage);
+#endif // BINDER_DEBUG_LOG
+
+};
+
+#endif