1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
7 // Contains VM implementation of WinRT type cache for code:CLRPrivBinderWinRT binder.
9 //=====================================================================================================================
13 #include "internalunknownimpl.h"
14 #include "clrprivbinding.h"
16 //=====================================================================================================================
17 class CLRPrivTypeCacheWinRT :
18 public IUnknownCommon<IUnknown>
21 //=============================================================================================
24 // S_OK - pAssembly contains type wszTypeName
25 // S_FALSE - pAssembly does not contain type wszTypeName
27 ICLRPrivAssembly * pAssembly,
30 // S_OK - pAssembly contains type wszTypeName
31 // S_FALSE - pAssembly does not contain type wszTypeName
32 // E_FAIL - assembly is not loaded
33 HRESULT ContainsTypeIfLoaded(
34 PTR_AppDomain pAppDomain,
35 PTR_ICLRPrivAssembly pPrivAssembly,
38 PTR_Assembly * ppAssembly);
40 static CLRPrivTypeCacheWinRT * GetOrCreateTypeCache();
42 #ifndef DACCESS_COMPILE
44 #ifndef CROSSGEN_COMPILE
45 // Raises user event DesignerNamespaceResolveEvent to get a list of files for this namespace.
46 void RaiseDesignerNamespaceResolveEvent(
48 CLRPrivBinderUtil::WStringListHolder * pFileNameList);
49 #endif // CROSSGEN_COMPILE
51 #endif //!DACCESS_COMPILE
54 //=============================================================================================
57 // Checks if the type (szNamespace/szClassName) is present in the assembly pAssembly.
58 HRESULT ContainsTypeHelper(
59 PTR_Assembly pAssembly,
63 //=============================================================================================
66 static CLRPrivTypeCacheWinRT * s_pSingleton;
68 }; // class CLRPrivTypeCaheWinRT
70 typedef DPTR(CLRPrivTypeCacheWinRT) PTR_CLRPrivTypeCacheWinRT;