Skip to content

Latest commit

 

History

History
62 lines (57 loc) · 1.48 KB

README.md

File metadata and controls

62 lines (57 loc) · 1.48 KB

go-dde

介绍

go 语言来实现调用windowapi,实现动态数据交换 Dynamic Data Exchange

软件架构

go

安装教程

go get github.com/forget-the-bright/go-dde

使用说明

这只是个简单的例子

func runClient() {
	ddecli := dde.DdeClient{}
	ddecli.AppName = "Server"
	ddecli.TopicName = "MyTopic"
	ddecli.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
	ddecli.Run()
	for i := 0; i < len(ddecli.Items); i++ {
		data := ddecli.Request(ddecli.HszItem[i])
		fmt.Printf("data: %v\n", data)
		ddecli.Poke(ddecli.HszItem[i], data)
		time.Sleep(1e9)
	}
}
func runServer() {
	ddeser := dde.DdeServer{}
	ddeser.AppName = "Server"
	ddeser.TopicName = "MyTopic"
	ddeser.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
	//defer ddeser.DestoryServer()
	ddeser.RunServer()
}
func main() {
	//runClient()
	runServer()
}

server 的回调函数可以自己定义

func  MetaCallBackfunc(wType UINT, wFmt UINT, hConv HCONV, hsz1 HSZ, hsz2 HSZ, hData HDDEDATA, dwData1 ULONG_PTR, dwData2 ULONG_PTR) HDDEDATA {
    //do something
	return 0
}
func runServer() {
	ddeser := dde.DdeServer{}
	ddeser.AppName = "Server"
	ddeser.TopicName = "MyTopic"
	ddeser.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
	//defer ddeser.DestoryServer()
    ddeser.Callback = MetaCallBackfunc
	ddeser.RunServer()
}
func main() {
	runServer()
}