IVsHandleInComingCallDynamicInProc Interface
Gives an object the ability to dynamically control reentrancy from calls from other COM apartments, in other words, from background threads.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop.10.0 (in Microsoft.VisualStudio.Shell.Interop.10.0.dll)
Syntax
'Declaration
<GuidAttribute("ADB942C5-1637-4D76-8635-7A9376F20699")> _
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface IVsHandleInComingCallDynamicInProc
[GuidAttribute("ADB942C5-1637-4D76-8635-7A9376F20699")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVsHandleInComingCallDynamicInProc
[GuidAttribute(L"ADB942C5-1637-4D76-8635-7A9376F20699")]
[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIUnknown)]
public interface class IVsHandleInComingCallDynamicInProc
[<GuidAttribute("ADB942C5-1637-4D76-8635-7A9376F20699")>]
[<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)>]
type IVsHandleInComingCallDynamicInProc = interface end
public interface IVsHandleInComingCallDynamicInProc
The IVsHandleInComingCallDynamicInProc type exposes the following members.
Methods
Name | Description | |
---|---|---|
AllowIncomingCall | Determines whether or not to allow an incoming call. |
Top
Remarks
This interface enables the object on which it is implemented to influence the return value from the IMessageFilter::HandleIncomingCall for the main UI thread of the IDE. To enable this capability, the interface needs to be registered under $RootKey$\HandleInComingCallDynamicInProc. Alternatively, if an object wants to statically block reentrancy from in-proc callers from other COM apartments without needing to make a dynamic decision, then it can register its interface under $RootKey$\HandleInComingCallRejectInProc. In this case no extra implementation is required.
Both HandleInComingCallDynamicInProc and HandleInComingCallRejectInProc can reject only CALLTYPE_TOPLEVEL and CALLTYPE_TOPLEVEL_CALLPENDING calls. CALLTYPE_NESTED, CALLTYPE_ASYNC, and CALLTYPE_ASYNC_CALLPENDING calls must never be rejected.
If AllowIncomingCall(UInt32, IntPtr, UInt32, Guid%, UInt16, Boolean%) returns pfAllow as VARIANT_FALSE, then SERVERCALL_RETRYLATER will be returned from the IMessageFilter::HandleIncomingCall.