3

そこで、NetOffice を使用して Outlook プラグインを作成しています。

プラグインのエントリ ポイントには、次のようなものがあります。

[GuidAttribute("d7066ab2-ac03-431a-bea5-b70d3efab2a5"), ProgId("OutlookPlugin"), ComVisible(true)]

ComVisibleこれで、ビットがライブラリを ComVisible として設定することがわかりました。これは、[アセンブリ情報] -> [アセンブリを COM-Visible にする] を使用して、ライブラリ全体ではなく個々のクラスを ComVisible にできるようにするためだと思います。

GuidAttributeしかし、とProgIdが何に使われているかわかりません。

4

3 に答える 3

2

すべての COM クラス (CoClass(es) とも呼ばれます) およびインターフェイスは、GUID (それぞれ CLSID および IID とも呼ばれます) によって識別されます。CoClass には、わかりやすい名前の ProgID もあります。

これらはすべて、COM コンポーネントまたは COM-Visible アセンブリが (それぞれ RegSvr32.exe または RegAsm.exe で) 登録されるときにレジストリに格納され、相互に参照されます。

于 2013-08-21T10:15:58.700 に答える
1

ProgIdの場合、ドキュメントはその使用法について非常に明確であると思います:

クラスの ProgID は、名前空間と型名を組み合わせることで自動的に生成されます。ただし、ProgID は 39 文字に制限されており、ピリオド以外の句読点を含めることができないため、無効な ProgID が生成される可能性があります。このような場合、ProgIdAttribute を使用して ProgID をクラスに手動で割り当てることができます。

ここに記載されていない理由は、手動で割り当てるとビルド間で一貫性が保たれるためです。

于 2013-08-21T10:33:14.677 に答える