Partager via


SContainerDispatch, interface

Passé à la méthode d'QueryService retourner une référence à IDispatch Interface.

Espace de noms :  Microsoft.VisualStudio.OLE.Interop
Assembly :  Microsoft.VisualStudio.Shell.Interop.8.0 (dans Microsoft.VisualStudio.Shell.Interop.8.0.dll)

Syntaxe

'Déclaration
<GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")> _
Public Interface SContainerDispatch
[GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")]
public interface SContainerDispatch

Remarques

IDispatch Interface est implémenté sur tout contrôle ou VSPackage qui prend en charge l'automation.Toutefois, pour obtenir l'interface d'IDispatch, il est nécessaire d'interroger le contrôle ou le VSPackage pour un fournisseur de services et de demander à que fournisseur de services pour obtenir l'interface d'IDispatch du service d'SContainerDispatch.Voyez l'exemple de la façon dont cette opération peut être effectuée.

Exemples

Cet exemple montre comment obtenir IDispatch Interface du service d'SContainerDispatch.

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;
}

Voir aussi

Référence

Microsoft.VisualStudio.OLE.Interop, espace de noms