Interfejs SContainerDispatch
Przekazany do QueryService metoda zwraca odwołanie do IDispatch Interface.
Przestrzeń nazw: Microsoft.VisualStudio.OLE.Interop
Zestaw: Microsoft.VisualStudio.Shell.Interop.8.0 (w Microsoft.VisualStudio.Shell.Interop.8.0.dll)
Składnia
'Deklaracja
<GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")> _
Public Interface SContainerDispatch
[GuidAttribute("B722BE00-4E68-101B-A2BC-00AA00404770")]
public interface SContainerDispatch
Uwagi
IDispatch Interface Jest zaimplementowana dla dowolnego formantu lub VSPackage, który obsługuje automatyzację.Jednakże do uzyskania IDispatch interfejsu, należy wykonać kwerendę kontroli lub VSPackage usługodawca i poproś usługodawca, że uzyskanie IDispatch interfejsu z SContainerDispatch usługi.Zobacz przykład w jaki sposób można to zrobić.
Przykłady
Ten przykład pokazuje sposób uzyskiwania IDispatch Interface z SContainerDispatch usługi.
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;
}