2007 以降のすべてのオフィスでサポートされるオフィス アドインを作成したいと考えています。オフィスごとに異なるアドイン バージョンを設定することは不可能のようです。すべてのオフィスが同じレジストリ キーからアドイン情報を読み込んでいます。そこで、netoffice を使用することにしました。
今私が使用するContentControl.SetPlaceholderText(null, null, "some text")
とDISP_E_TYPEMISMATCH
例外が発生します。この理由によると、 IDL 定義の書き方が不十分です: ポインターの整数のデフォルト値。面白いことに、最初のパラメーターが null でない場合、3 番目のパラメーターは無視されます。
私は合格しようとしましたMissing.Value
。
カスタムバインダーを使用しようとしたとき
contentControl.InstanceType.InvokeMember("SetPlaceholderText",
BindingFlags.InvokeMethod,
new MyBinder(),
contentControl.UnderlyingObject,
new object[] { null, null, placeholder });
MyBinder
メソッドは呼び出されませんでした。
ContentControl
を持っているPlaceholderText
プロパティを持っていますValue
。Value
ドキュメントによると読み取り/書き込みプロパティですが、値を書き込むと読み取り専用と表示されます。
では、プレースホルダーを設定する方法は?