2017-12-14 18 views
0

COM DLL(regsvr32)を登録せずにメール機能を使用したいと考えています。 Iからの情報に従った:私はEVAL-ポップアップを示しOutlook Redemption - DLLをregsvr32なしでRedemptionLoaderを使用する

private Redemption.SafeMailItem safeMail = Redemption.RedemptionLoader.new_SafeMailItem(); 

とDLLを初期化

http://www.dimastr.com/redemption/security.htm#redemptionloader

。すべての良い。 しかし、私は、オブジェクト

safeMail.Item = mail; // of type Microsoft.Office.Interop.Outlook.MailItem 

にOutlookメールアイテムを割り当てるときに、この例外が表示されます:

Unable to cast COM object of type 'System.__ComObject' to interface type 'Redemption.ISafeMailItem'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{0A95BE2D-1543-46BE-AD6D-18653034BF87}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

それが動作します。regsvr32でDLLを登録した後?しかし、私はそれを望んでいません。

何が間違っていますか?

EDIT:

  • 私はCOMを削除し、それが意図したものInterop.Redemption.dll

を使用するのdevのマシン

  • にCOMを登録し、それを試してみましたCOMを登録せずにローダーを使用する方法は?

  • +0

    refを参照してください。https://stackoverflow.com/a/20827140/1498669 – Bernhard

    +0

    があります複数のスレッドを使用していますか?レジストリにタイプ情報が見つからない場合、.NET実行時にマーシャリングの問題が発生します。 –

    答えて

    関連する問題