Question

Here are some warnings that I've encountered during making this add-in:

    Warning 1   
    Processing COM reference "" from path "C:\Windows\system32\stdole32.tlb". The type library importer could not convert the signature for the member 'DISPPARAMS.rgvarg'.

    Warning 2   
    Processing COM reference "" from path "C:\Windows\system32\stdole32.tlb". The type library importer could not convert the signature for the member 'DISPPARAMS.rgdispidNamedArgs'.

    Warning 3   
    Processing COM reference "VBA" from path "C:\Windows\system32\VEN2232.OLB". Type library importer has encountered an interface not derived from IUnknown: '_HiddenInterface'.

This add-in is working as it should but I'd like to know what these warnings mean. When I look at them, all I see is that it has some problems with processing COM references and converting some files from system32 folder. I do not know anything more about it so ...

Could someone take a look at them and give me a more specific explanation and maybe some solution for them. I'll be very grateful on every info.

Was it helpful?

Solution

These errors are no big deal. It just means some types in the COM Type Library cannot be imported automatically. From Visual Studio build process (or MSBuild task, used in the backend), I don't think you can remove these errors. They are produced by the .NET internal Type Library Importer with no flags you can pass.

What you could do though is create the interop assemblies you need using the Tlbimp.exe (Type Library Importer) tool instead, prior to your other build actions, and reference them instead of letting the IDE to do the job. Latest versions of the tool understand a silence switch.

Without the switch:

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64]tlbimp C:\Windows\system32\stdole32.tlb
Microsoft (R) .NET Framework Type Library to Assembly Converter 4.0.30319.17929
Copyright (C) Microsoft Corporation.  All rights reserved.

TlbImp : warning TI3001 : Primary interop assembly 'stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is already registered for type library 'C:\Windows\system32\stdole32.tlb'.
TlbImp : warning TI3002 : Importing a type library into a platform agnostic assembly.  This can cause errors if the type library is not truly platform agnostic.
TlbImp : warning TI3016 : The type library importer could not convert the signature for the member 'stdole.DISPPARAMS.rgvarg'.
TlbImp : warning TI3016 : The type library importer could not convert the signature for the member 'stdole.DISPPARAMS.rgdispidNamedArgs'.
TlbImp : warning TI3015 : At least one of the arguments for 'stdole.IDispatch.GetIDsOfNames' cannot be marshaled by the runtime marshaler.  Such arguments will therefore be passed as a pointer and may require unsafe code
to manipulate.
TlbImp : Type library imported to stdole.dll

With the silence switch (multiple occurrences):

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64]tlbimp C:\Windows\system32\stdole32.tlb /silence:3016 /silence:3015 /silence:3001 /silence:3002
Microsoft (R) .NET Framework Type Library to Assembly Converter 4.0.30319.17929
Copyright (C) Microsoft Corporation.  All rights reserved.

TlbImp : Type library imported to stdole.dll
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top