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.
4// ============================================================
5//
6// BindResult.hpp
7//
8
9
10//
11// Defines the BindResult class
12//
13// ============================================================
14
15#ifndef __BINDER__BIND_RESULT_HPP__
16#define __BINDER__BIND_RESULT_HPP__
17
18#include "bindertypes.hpp"
19
20namespace BINDER_SPACE
21{
22 class BindResult
23 {
24 public:
25 inline BindResult();
26 inline ~BindResult();
27
28 inline AssemblyName *GetAssemblyName(BOOL fAddRef = FALSE);
29 inline IUnknown *GetAssembly(BOOL fAddRef = FALSE);
30 inline Assembly *GetAsAssembly(BOOL fAddRef = FALSE);
31
32 inline AssemblyName *GetRetargetedAssemblyName();
33 inline void SetRetargetedAssemblyName(AssemblyName *pRetargetedAssemblyName);
34
35 inline BOOL GetIsDynamicBind();
36 inline void SetIsDynamicBind(BOOL fIsDynamicBind);
37 inline BOOL GetIsInGAC();
38 inline void SetIsInGAC(BOOL fIsInGAC);
39 inline BOOL GetIsContextBound();
40 inline void SetIsContextBound(BOOL fIsContextBound);
41 inline BOOL GetIsFirstRequest();
42 inline void SetIsFirstRequest(BOOL fIsFirstRequest);
43 inline BOOL GetIsSharable();
44 inline void SetIsSharable(BOOL fIsSharable);
45
46 inline void SetResult(ContextEntry *pContextEntry, BOOL fIsContextBound = TRUE);
47 inline void SetResult(Assembly *pAssembly);
48 inline void SetResult(BindResult *pBindResult);
49
50 inline void SetNoResult();
51 inline BOOL HaveResult();
52
53 inline IUnknown *ExtractAssembly();
54 inline void Reset();
55
56 protected:
57 DWORD m_dwResultFlags;
58 AssemblyName *m_pAssemblyName;
59 AssemblyName *m_pRetargetedAssemblyName;
60 ReleaseHolder<IUnknown> m_pIUnknownAssembly;
61 };
62};
63
64#endif
65