Interfaccia SContainerDispatch
Passato a QueryService metodo per restituire un riferimento a interfaccia IDispatch.
Spazio dei nomi: Microsoft.VisualStudio.OLE.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop.8.0 (in Microsoft.VisualStudio.Shell.Interop.8.0.dll)
Sintassi
'Dichiarazione
<GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")> _
Public Interface SContainerDispatch
[GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")]
public interface SContainerDispatch
Note
interfaccia IDispatch viene implementato in qualsiasi controllo o package VS che supporta l'automazione.tuttavia, ottenere IDispatch interfaccia, è necessario eseguire una query sul controllo o il package VS per un provider di servizi e da chiedere al provider di servizi di ottenere IDispatch interfaccia da SContainerDispatch servizio.Vedere l'esempio relativo di questo tipo può eseguire.
Esempi
In questo esempio viene illustrato come ottenere interfaccia IDispatch da SContainerDispatch servizio.
IDispatch GetDispatchInterface(object pUnknown)
{
IDispatch pDispatchInterface = null;
if (null != pUnknown)
{
Microsoft.VisualStudio.OLE.Interop.IServiceProvider pServiceProvider;
pServiceProvider = pUnknown as Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
if (null != pServiceProvider)
{
Guid serviceGuid = typeof(SContainerDispatch).GUID;
Guid interfaceGuid = typeof(IDispatch).GUID;
IntPtr pInterface = IntPtr.Zero;
int hr = pServiceProvider.QueryService(ref serviceGuid,
ref interfaceGuid,
out pInterface);
if (Microsoft.VisualStudio.ErrorHandler.Succeeded(hr))
{
pDispatchInterface = Marshal.GetObjectForIUnknown(pInterface)
as IDispatch;
}
}
}
return pDispatchInterface;
}