无格式VB.Net-覆盖模块中的子模块?

时间:2019-04-26 06:48:28

标签: vb.net module override

我编写了一个WindowsFormApplication,它处理基本更新过程和通过Windows消息进行USB检测,从而出现了问题。在某种形式上,像我的这样具有“ Protected Overrides Sub WndProc”是没有问题的:

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        ' >>>>Process USB Insertion<<<<
        If m.Msg = WM_DEVICECHANGE Then
            If CInt(m.WParam) = DBT_DEVICEARRIVAL Then
                Dim DeviceInfo As DEV_BROADCAST_HDR
                DeviceInfo = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)
                If DeviceInfo.dbch_devicetype = DBT_DEVTYP_VOLUME Then
                    Dim Volume As DEV_BROADCAST_VOLUME
                    Volume = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_VOLUME)), DEV_BROADCAST_VOLUME)
                    Driveletter = (GetDriveLetterFromMask(Volume.dbcv_unitmask) & ":\")

有没有一种方法可以将其包含在模块中,以便我可以构建无格式的应用程序?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为不可能。 System.Windows.Forms.NativeWindow类是窗口的基类。使用此类,您可以使用名为AssignHandle的函数,该函数采用一个参数,即对象(控件)的HWND。而且,您必须重写名为WndProc的方法。因此,没有表单就没有WndProc。