Laden...

Das COM-Objekt des Typs "..." kann nicht in den Schnittstellentyp "..." umgewandelt werden.

Erstellt von masterchris_99 vor 11 Jahren Letzter Beitrag vor 11 Jahren 4.168 Views
M
masterchris_99 Themenstarter:in
89 Beiträge seit 2006
vor 11 Jahren
Das COM-Objekt des Typs "..." kann nicht in den Schnittstellentyp "..." umgewandelt werden.

Hallo,

also meine Ausgangslage:

  1. Ich bin eine COM-Komponente
  2. Ich bekomme in einer Methode eine COM-Komponente rein und verwende diese
  3. Wenn ich nur über folgende Attribute als normale COM-Komponente erstellt werde funktioniere ich auch:
[ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(ITest)), ComVisible(true), Guid(ClassId)]
  1. Sobald ich mich als Singleton ExeCOMServer bereitstelle bekomme ich diesen Fehler:

Fehlermeldung:
Das COM-Objekt des Typs "AppsScriptLib.AppsScriptRunningContextClass" kann nicht in den Schnittstellentyp "AppsScriptLib.IAppsScriptRunningContext" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{4D2E5723-87C2-49C1-AA28-ED2D88275100}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).

Ich gehe also davon aus dass das Problem bei diesem Execomserver liegt.
Ich verwende dieses Design Pattern:
Module Name: ExeCOMServer.cs

Wie gesagt: Verwende ich nicht diesen ExeComServer funktioniert alles mit dem übergebenen AppsScriptLib.AppsScriptRunningContext

Ich denke das der Hund irgendwo in diesem Teil begraben liegt habe da aber keine Idee:

int hResult = COMNative.CoRegisterClassObject(
                ref clsidSimpleObj,                 // CLSID to be registered
                new MainAppClassFactory(),     // Class factory
                CLSCTX.LOCAL_SERVER,                // Context to run
                REGCLS.MULTIPLEUSE | REGCLS.SUSPENDED,
                out _cookieSimpleObj);

mfg Chris