文档章节

使用VB2005开发外接程序Connect类中需要了解的一些事件

麦壳饼
 麦壳饼
发布于 2015/12/09 12:56
字数 903
阅读 9
收藏 0

Imports System
Imports Microsoft.VisualStudio.CommandBars
Imports Extensibility
Imports EnvDTE
Imports EnvDTE80

Public Class Connect

    Implements IDTExtensibility2
 Implements IDTCommandTarget


    Dim cmWhen As ext_ConnectMode


    '''<summary>实现外接程序对象的构造函数。请将您的初始化代码置于此方法内。</summary>
    Public Sub New()

    End Sub

    '''<summary>实现 IDTExtensibility2 接口的 OnConnection 方法。接收正在加载外接程序的通知。</summary>
    '''<param name='application'>宿主应用程序的根对象。</param>
    '''<param name='connectMode'>描述外接程序的加载方式。</param>
    '''<param name='addInInst'>表示此外接程序的对象。</param>
    '''<remarks>当程序第一次执行时不加载,如果有必要,进行一些初始化工作,等到启动环境时记下启动模式,在启动完成后再加载</remarks>
    Public Sub OnConnection(ByVal Application As Object, ByVal ConnectMode As ext_ConnectMode, ByVal AddInInst As Object, ByRef Custom As Array) Implements IDTExtensibility2.OnConnection
        chDTE = CType(Application, DTE2)
        chAddIN = CType(AddInInst, AddIn)
        If ConnectMode <> ext_ConnectMode.ext_cm_UISetup And ConnectMode <> ext_ConnectMode.ext_cm_Startup Then
            LoadCoderHelper()
        Else
            cmWhen = ConnectMode
        End If
        
    End Sub

    '''<summary>实现 IDTExtensibility2 接口的 OnDisconnection 方法。接收正在卸载外接程序的通知。</summary>
    '''<param name='disconnectMode'>描述外接程序的卸载方式。</param>
    '''<param name='custom'>特定于宿主应用程序的参数数组。</param>
    '''<remarks>只载环境要关闭或用户要求关闭时才卸载,其他方式不卸载</remarks>
    Public Sub OnDisconnection(ByVal disconnectMode As ext_DisconnectMode, ByRef custom As Array) Implements IDTExtensibility2.OnDisconnection
        Debug.Write("OnDisconnection" & custom.ToString & Now & vbNewLine)
        If disconnectMode = ext_DisconnectMode.ext_dm_HostShutdown Or _
            disconnectMode = ext_DisconnectMode.ext_dm_UserClosed Then
            UnloadCoderHelper()
        End If
    End Sub

    '''<summary>实现 IDTExtensibility2 接口的 OnAddInsUpdate 方法。接收外接程序集合已更改的通知。</summary>
    '''<param name='custom'>特定于宿主应用程序的参数数组。</param>
    '''<remarks></remarks>
    Public Sub OnAddInsUpdate(ByRef custom As Array) Implements IDTExtensibility2.OnAddInsUpdate
        'Debug.Write("OnAddInsUpdate" & custom.ToString & Now & vbNewLine)
        '  LoadCoderHelper()
    End Sub

    '''<summary>实现 IDTExtensibility2 接口的 OnStartupComplete 方法。接收宿主应用程序已完成加载的通知。</summary>
    '''<param name='custom'>特定于宿主应用程序的参数数组。</param>
    '''<remarks>如果是启动时需要加载,则载启动完成后加载,因为环境没有加载完成的情况下,将成功调用环境内的命令</remarks>
    Public Sub OnStartupComplete(ByRef custom As Array) Implements IDTExtensibility2.OnStartupComplete
        If cmWhen = ext_ConnectMode.ext_cm_Startup Then
            LoadCoderHelper()
            'chCES.Show()
        End If
    End Sub

    '''<summary>实现 IDTExtensibility2 接口的 OnBeginShutdown 方法。接收正在卸载宿主应用程序的通知。</summary>
    '''<param name='custom'>特定于宿主应用程序的参数数组。</param>
    '''<remarks>开始卸载环境时迅速卸载本程序的一些功能</remarks>
    Public Sub OnBeginShutdown(ByRef custom As Array) Implements IDTExtensibility2.OnBeginShutdown
        Debug.Write("OnBeginShutdown" & custom.ToString & Now & vbNewLine)
        UnloadCoderHelper()

    End Sub
 
    '''<summary>实现 IDTCommandTarget 接口的 QueryStatus 方法。此方法在更新该命令的可用性时调用</summary>
    '''<param name='commandName'>要确定其状态的命令的名称。</param>
    '''<param name='neededText'>该命令所需的文本。</param>
    '''<param name='status'>该命令在用户界面中的状态。</param>
    '''<param name='commandText'>neededText 参数所要求的文本。</param>
    '''<remarks></remarks>
    Public Sub QueryStatus(ByVal CommandName As String, ByVal neededText As vsCommandStatusTextWanted, ByRef status As vsCommandStatus, ByRef commandText As Object) Implements IDTCommandTarget.QueryStatus
        Debug.WriteLine("OueryStatus" & commandName & Now & vbNewLine)
        If neededText = vsCommandStatusTextWanted.vsCommandStatusTextWantedNone Then
            If GetStatus(CommandName) Then
                status = CType(vsCommandStatus.vsCommandStatusEnabled + vsCommandStatus.vsCommandStatusSupported, vsCommandStatus)
            Else
                status = vsCommandStatus.vsCommandStatusUnsupported
            End If
        End If
    End Sub

    '''<summary>实现 IDTCommandTarget 接口的 Exec 方法。此方法在调用该命令时调用。</summary>
    '''<param name='commandName'>要执行的命令的名称。</param>
    '''<param name='executeOption'>描述该命令应如何运行。</param>
    '''<param name='varIn'>从调用方传递到命令处理程序的参数。</param>
    '''<param name='varOut'>从命令处理程序传递到调用方的参数。</param>
    '''<param name='handled'>通知调用方此命令是否已被处理。</param>
    '''<remarks></remarks>
    Public Sub Exec(ByVal commandName As String, ByVal executeOption As vsCommandExecOption, ByRef varIn As Object, ByRef varOut As Object, ByRef handled As Boolean) Implements IDTCommandTarget.Exec
        handled = False
        '  chCES.Show()
        Debug.Write("Exec" & commandName & Now & vbNewLine)
        If executeOption = vsCommandExecOption.vsCommandExecOptionDoDefault Then
            handled = ToDoCommand(commandName, varIn, varOut)
        End If
 End Sub

   
   
End Class

© 著作权归作者所有

麦壳饼

麦壳饼

粉丝 23
博文 73
码字总数 4828
作品 7
昌平
高级程序员
私信 提问
Qt Designer信号和槽

先入一些信号槽的基本介绍: 信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。它为高层次的事件处理自动生成所需要的附加代码。在...

johnnyky
2016/03/17
1K
0
利用Appdomain动态加载程序集,实现更灵活的vs2012外接程序开发

结构图 生成目录和新的appdomain基目录相同,随时生成,随时加载。 接口代码 public interface FuncProcessings { void GetFunctionMessage(FuncMessage funcMessage); string ReturnResult...

魂祭心
2015/09/18
341
0
手把手教你智能硬件开发(一) 我选Arduino

第1节 我选Arduino 高大上的无人机玩过吗?智能的家庭空气检测仪见过吗?手机控制的电子体重秤、血压仪用过吗?这些“高科技”都属于智能硬件。 作为软件开发者的你,有没有想过自己开发一个...

anddlecn
2016/09/02
0
0
Android Camera 系统框架分析

一、在android中开发人员可以做那些工作? 应用程序开发:利用android提供的强大的sdk,开发出各种各样新颖的应用。 系统开发:在android中Google实现了与硬件无关的所有代码,但是与硬件密切...

Jerikc
2012/11/05
1K
0
iOS应用IAP设置总结

iOS应用IAP设置总结 2012-02-14 16:35 0评论 阅读数:870 单独窗口打印放大字号缩小字号 wjforstudy分享了IAP的一些基本知识。 wjforstudy分享了IAP的一些基本 知识。在论坛的地址是:http:...

晨曦之光
2012/05/28
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Taro 兼容 h5 踩坑指南

最近一周在做 Taro 适配 h5 端,过程中改改补补,好不酸爽。 本文记录📝遇到的问题,希望为有相同需求的哥们👬节约点时间。 Taro 版本:1.3.9。 解决跨域问题 h5 发请求会报跨域问题,需...

dkvirus
今天
4
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
今天
3
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
今天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
今天
19
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部