IVsHandleInComingCallDynamicInProc Interface
Gives an object the ability to dynamically control reentrancy from calls from other COM apartments, in other words, from background threads.
Assembly: Microsoft.VisualStudio.Shell.Interop.10.0 (in Microsoft.VisualStudio.Shell.Interop.10.0.dll)
| Name | Description | |
|---|---|---|
![]() | AllowIncomingCall(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.
