软件集成接口.COM组件交互(3)

VB/VBS的COM组件调用。

在历史较长且比较有名的软件中,有很多都支持类VB/VBS/VBA语法,由此可见当年微软的威势!特别是VBS,如果没有了对COM/OCX组件的调用能力,立马就残了。废话少说,上代码:

调用COM组件:

Function doSomething(message, objects)
    On Error Resume Next
	Dim enovia, jsonString
	Set enovia = CreateObject("Custom.Interface.Enovia.Start")
	If 0 <> Err.number Then
	    MsgBox Err.Description & " : Custom.Interface.Enovia.Start, 其在耶?注册耶?"
	    Exit Function
	End If
	jsonString = getJsonString(message, objects)
	export getEnvironmentValue("PROCESS", "TEMP") & "\js.to", jsonString
	jsonString = enovia.doSomething(jsonString)
	Set enovia = Nothing
	
	doSomething = jsonString
End Function

虽然这里看起来代码很繁杂,但其实套路很简单:先CreateObject,创建一个COM对象,然后直接把这个对象拿来用就是了。

如果有COM事件,则需要在创建对象的语句后面补一句GetRef:

Set enovia = CreateObject("Custom.Interface.Enovia.Start")
enovia.OnWriteback = GetRef("onWriteback")

这里onWriteback是一个VBS里定义的函数或者过程:

Sub onWriteback(AData)
  Dim Answer, AMessage
  Set Answer = Decode(AData)
  AMessage = Answer.Item("message")
  Set Answer = Nothing
End Sub

 

你可能感兴趣的:(编程学习)