ComLightInterop 1.3.6

There is a newer version of this package available.
See the version list below for details.

Requires NuGet 3.4.4 or higher.

dotnet add package ComLightInterop --version 1.3.6                
NuGet\Install-Package ComLightInterop -Version 1.3.6                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ComLightInterop" Version="1.3.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ComLightInterop --version 1.3.6                
#r "nuget: ComLightInterop, 1.3.6"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ComLightInterop as a Cake Addin
#addin nuget:?package=ComLightInterop&version=1.3.6

// Install ComLightInterop as a Cake Tool
#tool nuget:?package=ComLightInterop&version=1.3.6                

The library only supports IUnknown-based interfaces, it doesn’t handle IDispatch.
You can only use simple types in your interfaces: primitives, structures, strings, pointers, function pointers, but not VARIANT or SAFEARRAY.
This package targets 3 platforms, .NET framework 4.7.2, .NET Core 2.2, and VC++.
Unfortunately, VC++ is Windows only.
To build Linux shared libraries implementing or consuming COM objects, please add "build/native" directory from this package to C++ include paths.
For cmake see include_directories command, or use some other method, depending on your C++ build system, and compiler.
Keep in mind .NET assemblies are often “AnyCPU”, C++ libraries are not, please make sure you’re building your native code for the correct architecture.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on ComLightInterop:

Package Downloads
WhisperNet

High-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model

VrmacGraphics

Vrmac graphics engine

Cgml

GPU-targeted vendor-agnostic AI library for Windows

WhisperNet-TimestampFix

High-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on ComLightInterop:

Repository Stars
VRCWizard/TTS-Voice-Wizard
Speech to Text to Speech. Song now playing. Sends text as OSC messages to VRChat to display on avatar. (STTTS) (Speech to TTS) (VRC STT System) (VTuber TTS)
Const-me/Vrmac
Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.
Version Downloads Last updated
2.0.0 175 8/19/2024
1.3.8 786 11/8/2023
1.3.7 7,089 4/4/2020
1.3.6 491 3/30/2020
1.3.5 449 3/30/2020
1.3.4 540 3/15/2020
1.3.3 509 3/12/2020
1.3.2 485 3/2/2020
1.3.1 551 2/29/2020
1.3.0 584 2/28/2020
1.2.0 500 2/24/2020
1.1.0 535 8/31/2019
1.0.0 518 8/30/2019

The library now supports properties in COM interfaces.

Getters/setters are required to be present in the interfaces as well, as normal COM methods.
This is to make easier to correlate what happens on the 2 sides of the interop, also to apply custom marshalling attributes to individual getter/setter methods and their parameters.

The feature is not exposed to C++, properties stay on the C# side of the interop.

Use `[Property]` custom attribute if you want to specify how exactly property is mapped to methods.
Without that custom attribute, `int prop{ get; set }` will use `getprop` and `setprop` methods. The mapping is case agnostic, `GetProp` and `SetProp` will work, too.

Also, for performance reasons, many classes in the library, including dynamically built proxy classes, are now sealed.