https://github.com/forderud/minicom
Cross-platform minimal COM/ATL subset
https://github.com/forderud/minicom
com
Last synced: 8 months ago
JSON representation
Cross-platform minimal COM/ATL subset
- Host: GitHub
- URL: https://github.com/forderud/minicom
- Owner: forderud
- License: mit
- Created: 2021-02-07T13:36:35.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-31T13:36:12.000Z (9 months ago)
- Last Synced: 2024-12-31T14:37:05.930Z (9 months ago)
- Topics: com
- Language: C++
- Homepage:
- Size: 157 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Partial cross-platform implementation of the [Component Object Model (COM)](https://docs.microsoft.com/en-us/windows/win32/com/the-component-object-model) runtime and [Active Template Library (ATL)](https://docs.microsoft.com/en-us/cpp/atl/atl-com-desktop-components).
Designed as a compatibility library to enable building of existing COM/ATL classes with clang or gcc for for Linux, Mac and mobile platforms. Developed due to lack of knowledge of any better alternatives.
### Design goals
* Support simple COM classes implemented in ATL.
* Support most automation-compatible types, so that the same COM classes can be directly accessed from C# and Python (using [comtypes](https://pythonhosted.org/comtypes/)) on Windows without any language wrappers or proxy/stub DLLs for marshaling.
* Compatiblity with clang and gcc.
* Compatibility with Linux, Mac, iOS and Android.### Missing features
* Complete COM or ATL support.
* Wrapper-code-free access from C# and Python on non-Windows.
* Out-of-process marshalling on non-Windows.Please contact the author if you're aware of any better alternative, and he'll be happy to scrap this project. I'm hoping that Microsoft [xlang](https://github.com/microsoft/xlang) or a similar project will eventually replace this project, but cross-platform support have so far been postponed.
## Shared & weak references
The repo also contains a [`SharedRef`](SharedRef.hpp) wrapper class for non-owning weak references through a `IWeakRef` interface. This is similar to `IWeakReference`, but is also compatible with classical `IUnknown`-based COM.