問題タブ [comaddin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - タイプ 'System.__ComObject' の COM オブジェクトをインターフェイス タイプ 'Microsoft.Office.Core.IRibbonUI' にキャストできません
こんにちは、エクセルアドイン初心者です。Microsoft Office 2010 をインストールしましたが、アドインは完全に機能していました。2013 年に確認するには、2013 をインストールし、バージョン 2010 と 2013 の両方を実行していました。助けてください
エラー
com - 最低限の管理されていない Outlook/Office アドインの作成
2016 年 3 月 3 日
C++ を使用して、Microsoft Outlook/Office 用の純粋で必要最低限の管理されていない COM アドインを作成したいと考えています。Visual Studio では、Active Template Library の使用が強制され、ホスト (Outlook) がアドインに接続する方法の基本的な実装がすべて非表示になります。ここに私がこれまでに知っていることの背景を少し示します。
COM の基本的な基礎とそのしくみを知っています。アーキテクチャに関する私の理解から、Outlook は COM の上に書かれているので、そのインターフェイスを照会してアプリケーションを操作できるはずであると結論付けました。
オフィス アプリケーションに接続するには、IDTExtensibility2 インターフェイスを使用する必要があることはわかっています。このインターフェイスの定義が存在するヘッダー ファイルの名前を知っている人はいますか?
アドインをレジストリに登録する必要があることはわかっています。これはCOMサーバーなので、これは予想されます。
これらの点を超えて、私は迷っています。ステップ 1 を知る必要があります。誰かが任意のタイプのリファレンスまたはコードを提供できますか?
記録として、アドインをゼロから作成する方法を知りたいので、VS を使用したくありません。パッケージで提供されているものではなく、必要なコンポーネントを知りたいです。
2016 年 3 月 4 日編集
だから私はMSDNのこのリンクに出くわしました:
https://msdn.microsoft.com/en-us/library/office/ff867268.aspx
どうして見逃したのかはわかりませんが、良い出発点のようです。私の唯一のハングアップは、使用するヘッダーだと思います。これは、基本的なアドインに必要なものを見つけるために私が取らなければならない冒険かもしれません. いろいろ調べて、このスレに報告します。
outlook-addin - PS_INTERNET_HEADERS フィールドを持つ Outlook フォーム領域
Microsoft Outlook アドイン (Visual Studio 2012、C#、COM アドイン、VSTO なし、Outlook 2010/2013/2016) を作成しています。ここで、1) ユーザーは、マップする必要があるさまざまなフィールドを作成および読み取ることができる必要があります。 /メッセージが Microsoft Exchange を出入りするときの MIME ヘッダーから、および 2) フィールドは、Outlook ビューの列として、検索式などで使用されるネイティブの Outlook フィールドとして使用できる必要があります。
1) を取得するために、アドインは PS_INTERNET_HEADERS 名前空間の (MAPI) フィールドを読み書きします。アドインが最初に読み込まれると、Exchange が受信メッセージの MIME ヘッダーと MAPI プロパティ間のマッピングを強制されるようにするダミーの隠しメッセージが作成されます (名前付きプロパティ、X ヘッダー、およびユーザーで説明されている問題に対処します) 。 . それはうまくいきます。
2) を取得するために、次のようなエントリを含む昔ながらの Outlook フォーム構成ファイル (フォーム構成ファイルの作成) を作成しました。
次に、Outlook Redemption を使用して、アドインの読み込み時にフォームを登録します。ユーザーはフィールド Foo を他の Outlook フィールドとして使用できるようになりました。
さて、私の問題は、Outlook フォーム デザイナーを使用してフォーム領域を作成するときに、フィールド Foo を追加しようとすると、「操作に失敗しました」というエラーが表示されることです。NmidPropset 値を PS_INTERNET_HEADERS (00020386-0000-0000-C000-000000000046) から PS_PUBLIC_STRINGS (00020329-0000-0000-C000-000000000046) に変更すると、フィールド Foo を追加できますが、1) は機能しません。
したがって、私の質問は次のとおりです。要件 1) と 2) の両方が満たされるように、名前空間 PS_INTERNET_HEADERS から Outlook フォーム領域にフィールドを追加するにはどうすればよいですか?
c# - Outlook の一部のバージョンで転送時にインターネット ヘッダーが正しくコピーされない
Microsoft Outlook アドイン (Visual Studio 2012、C#、COM アドイン、VSTO なし、Outlook 2010/2013/2016) を作成しています。このアドインでは、ユーザーがさまざまなフィールドを作成して読み取ることができなければなりません。メッセージが Microsoft Exchange を出入りするときの MIME ヘッダー (名前空間 PS_INTERNET_HEADERS のプロパティ)。
ユーザーがメッセージを転送するときに、元のメッセージから転送されたメッセージにプロパティをコピーしたいと考えています。これを行うには、イベント Application.ItemLoad と MailItem.Forward をリッスンします。後者のイベント ハンドラーでコピーが行われます。
これは、開発マシンの Outlook 2013 バージョン 15.0.4771.1000 では正常に機能しますが、仮想マシンで実行されている Outlook 2013 バージョン 15.0.4771.1000 では機能しません。Outlook 2010 を使用する他の仮想マシンでも機能しません。
問題は、転送されたメッセージの Inspectors.NewInspector のイベント ハンドラーでプロパティ値を読み取ると、予期せず空の値が返されることです。しかし、件名などを変更し、転送されたメッセージの下書きを保存して再度開くと、プロパティ値は期待どおりになります。したがって、プロパティは何らかの形で変更されますが、NewInspector のイベント ハンドラーで最初に読み取ったときに反映されません。私は何を間違っていますか?
以下は、問題を示すサンプル コードです。問題を証明するために必要と思われるクリーンアップ コードのみを含めました。
c# - サインオフィス COM アドイン
NetOffice に基づいた拡張機能を開発しました。私のオフィスの構成では、アプリケーションが信頼できる発行元によって署名されている必要があります。有効な証明書を使用して、signtool.exe を使用して出力 DLL に署名しようとしましたが、残念ながら、Office は「利用可能なデジタル署名がありません」と表示します。
このオプションは、次の方法で有効にできます。
[ファイル] → [オプション] → [セキュリティ センター] → [セキュリティ センターの設定] → [アドイン] → [信頼された発行元による署名をアプリケーション アドインに要求する]
DLL に署名するための適切な方法は何ですか?
VSTO を使用する場合、ClickOnce が署名を処理します。DLL 用に作成された .manifest ファイルもあります。必要かどうかはわかりませんが、クラス ライブラリ用に作成できません。
私がオンラインで見つけたいくつかの情報:
delphi - createoleobject を使用して Reuters COM アドインを Excel 2013 に自動的にロードする
createoleobject を使用して Thomson Reuters com アドインを Delphi アプリケーションにロードしようとしていますが、com アドインを見つけることができません。
application.comaddins[i].name は、アドインが正しく機能する有効なメンバーではないというエラーが表示されます。com addin が Delphi でアクティブ化されるようにするには、comaddins オブジェクトにアクセスするのに助けが必要です。
前もって感謝します。