win32 ole implementation for golang
Go Batchfile
Latest commit 085abb8 Jul 12, 2017 @mattn mattn add WCode and SCODE for EXCEPINFO
fixes #148
Permalink
Failed to load latest commit information.
build * Use lowercase terms in batch file. Aug 7, 2015
data add screenshot Jan 21, 2011
example New example for LibreOffice (OpenOffice) automation Jun 22, 2016
oleutil add enum utility Feb 9, 2017
.travis.yml Use container based Travis-CI. Aug 6, 2015
ChangeLog.md Add additional information about test case for ienumvariant. Oct 29, 2015
README.md Remove duplicate travis-ci badge. Aug 6, 2015
appveyor.yml Remove 32bit test. Nov 14, 2015
com.go Need to move ClassIDFrom to make it available to linux and Windows. Oct 29, 2015
com_func.go Correct type conversions. Sep 16, 2015
com_func_test.go * Use lowercase terms in batch file. Aug 7, 2015
com_test.go Only build for windows in order to not fail tests for linux. May 19, 2015
connect.go Spelling and clarity in documentation. May 15, 2015
connect_test.go Fix examples and remove test. May 19, 2015
connect_windows_test.go Add tests for linux. These just test for NOOP, so they will pass, but… May 19, 2015
constants.go Fix build on non-windows OSs. Close #47 Apr 22, 2015
error.go Add documentation and make structures and documentation available out… May 13, 2015
error_func.go * Use lowercase terms in batch file. Aug 7, 2015
error_windows.go * Use lowercase terms in batch file. Aug 7, 2015
guid.go Added native GUID string parsing Jun 24, 2016
guid_test.go Added tests for NewGUID and GUID.String Jul 7, 2016
iconnectionpoint.go Fixes. Round 1. May 15, 2015
iconnectionpoint_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iconnectionpoint_windows.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iconnectionpointcontainer.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iconnectionpointcontainer_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iconnectionpointcontainer_windows.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
idispatch.go Replicate some oleutil helper functions to ole main package. Mostly e… Oct 29, 2015
idispatch_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
idispatch_windows.go Quick fix for calling invoke with *string parameters Dec 16, 2015
idispatch_windows_test.go * Fix GUID for Scalar Test object Class ID. Nov 2, 2015
ienumvariant.go Implement using static class init. Aug 20, 2015
ienumvariant_func.go Need to pass Variant. Oct 29, 2015
ienumvariant_test.go add missing Release() calls in ienumvariant_test.go example Jul 28, 2016
ienumvariant_windows.go * Fix Enum retrieval. Oct 29, 2015
iinspectable.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iinspectable_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iinspectable_windows.go gofmt -s Feb 4, 2016
iprovideclassinfo.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iprovideclassinfo_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iprovideclassinfo_windows.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
itypeinfo.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
itypeinfo_func.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
itypeinfo_windows.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
iunknown.go * Fix Enum retrieval. Oct 29, 2015
iunknown_func.go * Helper that puts creates interface for iunknown query interface. Sep 16, 2015
iunknown_windows.go * Fix Enum retrieval. Oct 29, 2015
iunknown_windows_test.go Release iunknown object. Sep 16, 2015
ole.go add WCode and SCODE for EXCEPINFO Jul 12, 2017
safearray.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
safearray_func.go import unsafe Mar 11, 2016
safearray_test.go Fix comment length. Sep 16, 2015
safearray_windows.go implement ToValueArray() Jan 8, 2016
safearrayconversion.go implement ToValueArray() Jan 8, 2016
safearrayconversion_test.go Move functions and allow for functions to exist outside windows. Simp… May 14, 2015
safearrayslices.go add []string{} variant Sep 30, 2015
utility.go Need to move ClassIDFrom to make it available to linux and Windows. Oct 29, 2015
variables.go Add documentation and make structures and documentation available out… May 13, 2015
variant.go implement ToValueArray() Jan 8, 2016
variant_386.go Add documentation and make structures and documentation available out… May 13, 2015
variant_amd64.go Add documentation and make structures and documentation available out… May 13, 2015
variant_s390x.go Support compilation on linux/s390x Jun 1, 2017
vt_string.go Add stringer for VT Feb 18, 2015
winrt.go Add documentation and make structures and documentation available out… May 13, 2015
winrt_doc.go * Use 64-bit go to compile 386 version of go tools. Aug 8, 2015

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