diff options
Diffstat (limited to 'src/binder/inc/coreclrbindercommon.h')
-rw-r--r-- | src/binder/inc/coreclrbindercommon.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/binder/inc/coreclrbindercommon.h b/src/binder/inc/coreclrbindercommon.h new file mode 100644 index 0000000000..66166d6fd2 --- /dev/null +++ b/src/binder/inc/coreclrbindercommon.h @@ -0,0 +1,58 @@ +// 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. + + +#ifndef __CORECLR_BINDER_COMMON_H__ +#define __CORECLR_BINDER_COMMON_H__ + +#include "clrprivbinding.h" +#include "internalunknownimpl.h" +#include "applicationcontext.hpp" + + +namespace BINDER_SPACE +{ + class AssemblyIdentityUTF8; +}; + +class CLRPrivBinderCoreCLR; + +// General purpose AssemblyBinder helper class +class CCoreCLRBinderHelper +{ +public: + static HRESULT Init(); + + static HRESULT DefaultBinderSetupContext(DWORD dwAppDomainId, + CLRPrivBinderCoreCLR **ppTPABinder); + + // ABHI-TODO: The call indicates that this can come from a case where + // pDomain->GetFusionContext() is null, hence this is static function + // which handles a null binder. See if this actually happens + static HRESULT GetAssemblyIdentity(LPCSTR szTextualIdentity, + BINDER_SPACE::ApplicationContext *pApplicationContext, + NewHolder<BINDER_SPACE::AssemblyIdentityUTF8> &assemblyIdentityHolder); + + //============================================================================= + // Class functions that provides binding services beyond the ICLRPrivInterface + //----------------------------------------------------------------------------- + static HRESULT BindToSystem(ICLRPrivAssembly **ppSystemAssembly, bool fBindToNativeImage); + + static HRESULT BindToSystemSatellite(SString &systemPath, + SString &sSimpleName, + SString &sCultureName, + ICLRPrivAssembly **ppSystemAssembly); + + static HRESULT GetAssemblyFromImage(PEImage *pPEImage, + PEImage *pNativePEImage, + ICLRPrivAssembly **ppAssembly); + + static HRESULT GetAssembly(/* in */ SString &assemblyPath, + /* in */ BOOL fInspectionOnly, + /* in */ BOOL fIsInGAC, + /* in */ BOOL fExplicitBindToNativeImage, + /* out */ BINDER_SPACE::Assembly **ppAssembly); +}; + +#endif // __CORECLR_BINDER_COMMON_H__ |