IVsHandleInComingCallDynamicInProc Interface

Definition

Gives an object the ability to dynamically control reentrancy from calls from other COM apartments, in other words, from background threads.

public interface class IVsHandleInComingCallDynamicInProc
public interface class IVsHandleInComingCallDynamicInProc
__interface IVsHandleInComingCallDynamicInProc
[System.Runtime.InteropServices.Guid("ADB942C5-1637-4D76-8635-7A9376F20699")]
[System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
public interface IVsHandleInComingCallDynamicInProc
[<System.Runtime.InteropServices.Guid("ADB942C5-1637-4D76-8635-7A9376F20699")>]
[<System.Runtime.InteropServices.InterfaceType(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)>]
type IVsHandleInComingCallDynamicInProc = interface
Public Interface IVsHandleInComingCallDynamicInProc
Attributes

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

Methods

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

Determines whether or not to allow an incoming call.

Applies to