com-interop

Error calling ctor of signed COM .Net DLL

Hi guys, if've got a problem with a sigend .Net COM DLL and I try to call the ctor of this class in VB6 but it only works on my machine, but not on the other developer machines. The error is 0x80131534. The Class looks like this: // GUIDs are examples. In my component they're diffrent [ComVisible(true)] [Guid("AAAAAAAA-AAAA-1111-AAAA-...

Interop Assembly with delegates

I've wrote a Interop Assembly for a COM library. Everything was fine, except when I've tried to support events. This is my coClass definition: coclass NetCustomWatcher { [default] interface INetCustomWatcher; [default, source] dispinterface _INetCustomWatcherEvents; }; It's pretty simple. I read a lot of articles...

Cannot instanciate .Net COM object in classic ASP/VBScript page (Error ASP 0177)

I've written a COM interop enabled class-library in C# using .Net 3.5. The object is meant to provide some utility functions for classic ASP pages. I've written a test.asp page which instanciates the desired object and calls its methods. Works fine on my machine. On a different machine (Windows Server 2003 - Standard Edition) it doesn't...

Absolute COM Confusion - C# interop with early-binding

I've been battling with VStudio, Google and various other tools and websites all day and found no solution - HELP!! I have two COM interfaces (pure COM, no ATL): IMyClassFactory and IMyClass with corresponding implementations I want to use them from C# BUT without registering the COM server with regsvr32. I expose the Class Factory wi...

com interop: how to consume c# from Excel or Access

I see plenty on the web about VSTO and automating excel from c#, but very little to get started on wiring up a c# assembly to make it visible from Excel. Can someone point me to some very basic info explaining how to create a COM interface, GUIDS, ComVisible etc? ...

How do I use a versioned COM interface from C#?

How do I make instances of and calls to COM components that have been extended? I have used a third party COM component (XRawFile2.dll from Finnigan/ Thermo Scientific) for many years in a mass spectrometry related application written in .NET (mixed VB.NET and C#) for accessing raw spectrum data. This has worked well. However this COM c...

Is there a way to decrease overhead associated with out-proc COM calls?

Our program consumes an out-proc COM server and makes thousands of calls on its interfaces. This takes very very long time - like a minute for about 50k calls. The COM component vendor says that the calls are very fast by themselves and that the problem is in the overhead associated with out-proc calls. Is there anything that can be tun...

.NET Interop app broken if Windows version >= Server2008

We have a largish 32-bit MFC/COM app that calls a .NET dll using interop. It works fine on 2k(server & client), XP, & Win2k3. We've been testing it on Server 2008 & Win7 & it hangs with exception 0xc0000005 in ntdll.dll. After attempting to run it from the menu in the COM app, when we close the COM app it hangs as well. Does anyone kno...

Visual Studio 2010: Embed Interop Types

I found some information about this on Scott Hanselmans Blog Does anybody exactly know what this mean? Is this only for the Office Primary Interop Assemblies, or can I also use this to Embed my Redemption library or other COM libraries? Kind regards ...

Registering x64 Assemblies for COM Interop

Scenario: I have a project containgin two C# projects, which for historical reasons must communicate with each other using COM (via COM Interop). The COM Server is an in-process automation object (call this the "Server") and the COM Client is a simple C# Console application that loads the server like this: var objTypee = Type....

Load a .NET assembly from a COM ProgID without creating a COM object

A bit of an odd question and probably backwards from what most people want to do, but I'm trying to work around a legacy COM issue. I have two components, both of which are actually .NET assemblies, but for historical reasons one is loading the other as a COM object (the assembly is registered for COM Interop). It's a plug-in architectu...

When should I register my COM interface in HKCR\Interface?

Turns out there's a HKCR\Interface subtree where I can register my newly introduced COM interface. As I get it I would need it in two cases: if I want to enable marshalling - then I can register proxy/stub there if I want to publish more information on my component so that other developers could lookup the interface id and find it's hu...

Any sense in marking an IUnknown-derived interface as dual in IDL?

Reviewing our code I've found a curious definition in one of .idl files: [ object, uuid(uuidhere), dual, nonextensible, oleautomation, hidden ] interface IOurInterface : IUnknown { //methods here }; How can an interface derived directly from IUnknown possibly be a dual interface? Will anything break if I re...

Manual way to call COM object through .NET

Is there a manual way to call a COM object in the GAC in .NET, without adding it as a reference? The reason I ask is I only know how to code in C# and want to call a .NET COM object and tests that its CMO calls are visible, but obviously you can't add a .NET COM object to a .NET assembly! As you have to reference it, so I was wondering ...

Regasm and Com Interop false negatives

Hi I'm attempting to expose our library via COM but seem to be fighting the tools more than the actual problem. Regardless of how I write my COM exposed class I get the warning: "XXX.dll does not contain any types that can be registered for COM interop" (marked project as Register for COM interop in the project properties). Even the sim...

How to elegantly prevent a webservice proxy from being exposed to COM?

I have a C# assembly that I use as an in-proc COM server consumed by an unmanaged C++ application. The assembly consumes a webservice that will not ever change so there's no need to ever update the webservice proxy classes. That's why the proxy classes are create donce and Reference.cs files are simply put into the repository and only co...

What are easy ways to use a 32-bit in-proc COM server from 64-bit applications?

I have a 32-bit native C++ ATL in-proc COM server which depends on a huge set of legacy 32-bit libraries. I need to use it from a 64-bit application with the smallest changes possible. One option is putting it into a COM+ application. What are other easy options? ...

How does this strange 32-bit/64-bit interop solution work?

I'm currently maintaining a piece of software that we outsourced couple of years ago and that is poorly documented. The piece is a COM server for consuming by third-party applications and an installer that does all necessary deployment. There's the core compiled as 32-bit DLL and meant to be used from 32-bit applications. And there's al...

How exactly do I config DCOM to load my DLL into a separate process?

I'm trying to force an existing native C++ ATL in-proc COM server into a separate process. I hope DCOM can do this for me without changing the COM server. I started with a usual registry setup - I have a HKCR\CLSID{classId} entry and an InProcServer32 key there specifying the path to the .dll file. I generated an application id (GUID) ...

Invoking method from the System.__ComObject base type

I'm trying to get some information from an msi file I used: Type installerType = Type.GetTypeFromProgID("WindowsInstaller.Installer"); object installerInstance = installerType.CreateInstance(installerType); i'm well aware of the option to add reference to the file C:\windows\system32\msi.dll, and cast installerInstance to WindowsInst...