77 lines
1.9 KiB
Lua
77 lines
1.9 KiB
Lua
require("luacom")
|
|
|
|
local obj = {}
|
|
|
|
function obj:Sum(i1, i2)
|
|
print("Calling Sum...",i1,i2)
|
|
return i1 + i2
|
|
end
|
|
|
|
function obj:I2A(i1)
|
|
print("Calling I2A...",i1)
|
|
return tostring(i1)
|
|
end
|
|
|
|
function obj:IntDivide(i1, i2)
|
|
print("Calling IntDivide...",i1,i2)
|
|
quot, rest = {}, {}
|
|
quot.Type = "int"
|
|
quot.Value = math.floor(i1/i2)
|
|
rest.Type = "int"
|
|
rest.Value = math.mod(i1, i2)
|
|
return quot, rest
|
|
end
|
|
|
|
local COM = {}
|
|
|
|
local COMAppObject, events, e, cookie
|
|
|
|
function COM:StartAutomation()
|
|
print("Starting server...")
|
|
-- creates the object using its default interface
|
|
COMAppObject, events, e = luacom.NewObject(obj, "testlua.Teste")
|
|
-- This error will be caught by detectAutomation
|
|
if COMAppObject == nil then
|
|
error("NewObject failed: "..e)
|
|
end
|
|
-- Exposes the object
|
|
cookie = luacom.ExposeObject(COMAppObject)
|
|
if cookie == nil then
|
|
error("ExposeObject failed!")
|
|
end
|
|
end
|
|
|
|
function COM:Register()
|
|
-- fills table with registration information
|
|
local reginfo = {}
|
|
reginfo.VersionIndependentProgID = "testlua.Teste"
|
|
reginfo.ProgID = reginfo.VersionIndependentProgID..".1"
|
|
reginfo.TypeLib = "testlua.tlb"
|
|
reginfo.CoClass = "Teste"
|
|
reginfo.ComponentName = "Test Component"
|
|
reginfo.Arguments = "/Automation"
|
|
reginfo.ScriptFile = "inproc.lua"
|
|
-- stores component information in the registry
|
|
local res = luacom.RegisterObject(reginfo)
|
|
if res == nil then
|
|
error("RegisterObject failed!")
|
|
end
|
|
end
|
|
|
|
function COM:UnRegister()
|
|
-- fills table with registration information
|
|
local reginfo = {}
|
|
reginfo.VersionIndependentProgID = "testlua.Teste"
|
|
reginfo.ProgID = reginfo.VersionIndependentProgID..".1"
|
|
reginfo.TypeLib = "testlua.tlb"
|
|
reginfo.CoClass = "Teste"
|
|
-- deletes component information from the registry
|
|
local res = luacom.UnRegisterObject(reginfo)
|
|
if res == nil then
|
|
error("UnRegisterObject failed!")
|
|
end
|
|
end
|
|
|
|
return luacom.DetectAutomation(COM)
|
|
|