DarthSim 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
..
oleutil b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
.travis.yml 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
ChangeLog.md 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
LICENSE b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
README.md 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
appveyor.yml 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
com.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
com_func.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
connect.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
constants.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
error.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
error_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
error_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
go.mod 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
go.sum 2e6296c4d9 Go go mod %!s(int64=6) %!d(string=hai) anos
guid.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpoint.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpoint_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpoint_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpointcontainer.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpointcontainer_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iconnectionpointcontainer_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
idispatch.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
idispatch_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
idispatch_windows.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
ienumvariant.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
ienumvariant_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
ienumvariant_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iinspectable.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iinspectable_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iinspectable_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iprovideclassinfo.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iprovideclassinfo_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iprovideclassinfo_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
itypeinfo.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
itypeinfo_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
itypeinfo_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iunknown.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iunknown_func.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
iunknown_windows.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
ole.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
safearray.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
safearray_func.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
safearray_windows.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
safearrayconversion.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
safearrayslices.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
utility.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
variables.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
variant.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
variant_386.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
variant_amd64.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
variant_date_386.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
variant_date_amd64.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
variant_ppc64le.go 384a2909c3 Update vendored dependencies %!s(int64=6) %!d(string=hai) anos
variant_s390x.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
vt_string.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
winrt.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos
winrt_doc.go b66b27bef9 Errors reporting %!s(int64=7) %!d(string=hai) anos

README.md

Go OLE

Build status Build Status GoDoc

Go bindings for Windows COM using shared libraries instead of cgo.

By Yasuhiro Matsumoto.

Install

To experiment with go-ole, you can just compile and run the example program:

go get github.com/go-ole/go-ole
cd /path/to/go-ole/
go test

cd /path/to/go-ole/example/excel
go run excel.go

Continuous Integration

Continuous integration configuration has been added for both Travis-CI and AppVeyor. You will have to add these to your own account for your fork in order for it to run.

Travis-CI

Travis-CI was added to check builds on Linux to ensure that go get works when cross building. Currently, Travis-CI is not used to test cross-building, but this may be changed in the future. It is also not currently possible to test the library on Linux, since COM API is specific to Windows and it is not currently possible to run a COM server on Linux or even connect to a remote COM server.

AppVeyor

AppVeyor is used to build on Windows using the (in-development) test COM server. It is currently only used to test the build and ensure that the code works on Windows. It will be used to register a COM server and then run the test cases based on the test COM server.

The tests currently do run and do pass and this should be maintained with commits.

Versioning

Go OLE uses semantic versioning for version numbers, which is similar to the version contract of the Go language. Which means that the major version will always maintain backwards compatibility with minor versions. Minor versions will only add new additions and changes. Fixes will always be in patch.

This contract should allow you to upgrade to new minor and patch versions without breakage or modifications to your existing code. Leave a ticket, if there is breakage, so that it could be fixed.

LICENSE

Under the MIT License: http://mattn.mit-license.org/2013