MCPcopy Index your code
hub / github.com/go-ole/go-ole

github.com/go-ole/go-ole @v1.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.0 ↗ · + Follow
433 symbols 1,574 edges 79 files 236 documented · 55% 319 cross-repo links updated 3mo agov1.3.0 · 2023-08-15★ 1,3161 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 282
Method 101
Struct 44
TypeAlias 5
Interface 1

Languages

Go100%

Modules by API surface

idispatch_windows_test.go29 symbols
com.go29 symbols
safearray_windows.go27 symbols
safearray_func.go27 symbols
com_func.go26 symbols
connect.go19 symbols
ole.go16 symbols
_example/libreoffice/libreoffice.go15 symbols
iunknown.go14 symbols
oleutil/oleutil.go12 symbols
idispatch.go12 symbols
guid.go12 symbols

For agents

$ claude mcp add go-ole \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page