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)

public interface IVsHandleInComingCallDynamicInProc

The IVsHandleInComingCallDynamicInProc type exposes the following members.

Public methodAllowIncomingCallDetermines whether or not to allow an incoming call.

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.

Community Additions