在VB中注册控件

Private   Declare   Function LoadLibraryA Lib "kernel32" (ByVal lLibFileName As StringAs Long
Private Declare Function CreateThread Lib "kernel32" (lThreadAttributes As Any, ByVal lStackSize As LongByVal lStartAddress As LongByVal larameter As LongByVal lCreationFlags As Long, lThreadID As LongAs Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As LongByVal lMilliseconds As LongAs Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As LongByVal lProcName As StringAs Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As LongAs Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As LongAs Long
Private Declare Function GetExitCodeThread Lib "kernel32" (ByVal hThread As Long, lExitCode As LongAs Long
Private Declare Sub ExitThread Lib "kernel32" (ByVal lExitCode As Long)
'输入 : sDllPath DLL/OCX 的全名
'
 bRegister 注册为true , 反注册为false
'
输出 : 如成功返回true
'
描述 : 注册/反注册控件(ocx /dll)

Function RegisterServer(ByVal sDllPath As StringOptional bRegister As Boolean = TrueAs Boolean
Dim lLibAddress As Long, lProcAddress As Long, lThreadID As Long, lSuccess As Long, lExitCode As Long, lThread As Long
Dim sRegister As String
Const clMaxTimeWait As Long = 20000 'Wait 20 secs for register to
complete
On Error GoTo ExitFunc
If Len(sDllPath) > 0 And Len(Dir(sDllPath)) > 0 Then
'File exists
If bRegister Then
sRegister 
= "DllRegisterServer"
Else
sRegister 
= "DllUnregisterServer"
End If
'Load library into current process
lLibAddress = LoadLibraryA(sDllPath)
If lLibAddress Then
'Get address of the DLL function
lProcAddress = GetProcAddress(lLibAddress, sRegister)
If lProcAddress Then
'Found interface, make call to component
lThread = CreateThread(ByVal 0&0&ByVal lProcAddress, ByVal 0&0&, lThread)
If lThread Then
'Created thread
lSuccess = (WaitForSingleObject(lThread, clMaxTimeWait) = 0)
If Not lSuccess Then
'Failed to register, close thread
Call GetExitCodeThread(lThread, lExitCode)
Call ExitThread(lExitCode)
RegisterServer 
= False
Else
'Register control
RegisterServer = True
Call CloseHandle(lThread)
End If
End If
Else
'Object doesn't expose OLE interface
FreeLibrary lLibAddress
End If
Call FreeLibrary(lLibAddress)
End If
End If
ExitFunc:
On Error GoTo 0
End Function

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、VB控件集,控件集内含ListView、漂亮按钮、下拉列表、TAB窗体选项卡、树形菜单控件、窗体滑动菜单、分组菜单,可折叠展开的菜单等。以前就更新过,现在修正了不少控件的小错误,更接近完善了,相信这些控件对于从事vb6编程的朋友来说,是相当实用的。 二、1, clistbar.zip 超级的列表框,你一定不会失望(137KB) 2, axtree.zip 用惯了treeview控件的朋友可以试一试这款axtree控件,它增添了更多的控制(129KB) 3,richedit 利用RichText实现的编辑器,提供了修改字体,打印,查询等功能(4KB) 4,exptrocx.zip 实现explorer风格的树型目录的activex控件(1191KB) 5,txtsrch 在Text实现快速增量查询(5KB) 6,exproplist.zip 建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB) 7,combosrc.zip 在 COMBO 的增量查询(2KB) 8,escombo.zip 为COomBo控件加强版,有近似关键字搜索功能(27KB) 9,sblist20.zip 它允许你用各自颜色(162KB) 10,wordwrap.zip 在 TextBox 自动换行(2KB) 11,chklst.zip Check Box 和 List的结合体(101KB) 12,aresbuttonpro.zip aresbutton是一个显示图形按钮的activex控件, 主页地址http://const.ricor.ru/~art/aresbutton(320KB) 13,kenjLV1.zip ListView的API效果演示(11KB) 14,cbuttonr.zip 扩充的按钮控件(24KB) 15,csplitba.zip 在窗体里随意建立分隔条(11KB) 16,gbarocx.zip 进度条(171KB) 17,ccrpprg.zip 一个进度条的控件,可以有多种形态供你选择(142KB) 18,chklsb25.zip 它提供了类似 word 和 excel 的内含检查框 ( checkbox)的列表框(listbox)。在这个控制,每一个条目的字体、颜色、使能状态和选状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB) 19,as97ppup.zip 一种可以弹出的按钮,具有多种形态和功能(32KB) 20,slidrc.zip 形状类似于收音机音量控制的滚动条(296KB) 21,TracBar.zip 滚动条模块,与 VB 的滚动条比较, 该模块支持动态生成, 支持触发消息(7KB) 22,srchlist.zip 在 list 控件里进行增量查询(3KB) 23,devfltbt.zip 可爱的按钮(141KB) 24,treedrag.zip TreeView 节点拖动、增加、删除等功能演示(8KB) 25,dirview.zip 装入整个 C 盘目录到 TreeView(5KB) 26,msghook.exe 专门用来截取Windows消息的控件(114KB) 27,led.ZIP 象电子表一样显示数字的控件(17KB) 28,splitbardemo.ZIP 无须任何代码,即可随意拖动该控件,有水平和垂直两种样式。支持 MouseOver 事件(拖动结束)(11KB) 29,hotkeydemo.ZIP 该控件可以为你的应用程序添加一个系统级的热键,通过HotkeyPressed事件来处理热键的按下后的工作。(15KB) 30,pwdboxdemo.ZIP 每当用键盘输入一个字符时,将显示出随机个数的密码字符(31KB) 31,c5.zip 防火墙控件(39KB) 32,c6.zip 列出Windows运行的所有程序,并终止其运行的控件(18KB) 33,taskbar.zip 一个日期控件(有源代码)(6KB) 34,encrypt.zip 加密/解密字符串的控件(46KB) 35,activelock.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值