diff options
Diffstat (limited to 'src/binder/inc/binderinterface.hpp')
-rw-r--r-- | src/binder/inc/binderinterface.hpp | 69 |
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 |