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

System_CAPS_pubmethodAllowIncomingCall(UInt32, IntPtr, UInt32, Guid, UInt16, Boolean)

Determines 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 returns pfAllow as VARIANT_FALSE, then SERVERCALL_RETRYLATER will be returned from the IMessageFilter::HandleIncomingCall.

Return to top