And all be OK.... BUT... you will get message about failed to register DragDrop event... it is becourse you mix MTA model with STA, but you can ignore it and use.2. Better way it is use universal marshaller oleaut32.dll, and you need add ProxyStubClsid entries to each IID to registry ( use my registry file for that ):

If you want to compile C++ samples you need got latest CNCUSBControllerAPI.tlb from CNC Software installation dir and replace old one from source dir, next you need to recompile project and all be OK... with C samples i just has not time to fix problem cause Andrej does not provide backward compatibility He just change Interface virtual table and broke my C samples... Btw my C samples has handwritten method virtual table and C++ samples generate it from TLB, that's why you can prefer C++ version or rewrite C version methods table.

I am using C++ code for console application based on your sample. But after a cuple off GetPosition, the retrieved coodrs are same.When i use Events for know coords (using a console application) only a few event are triggered, after 5 o 6 stops.

I am doing a console C++ application, i based my code in samples.After a few get_Position the API show same values. I also try whit Event sample, but after 4-6 event triggered it s stop to active OnUpdate Event.