DSOFile
次のコードを使用して、カスタム属性をファイルに書き込むために使用しています。
DSOFile.OleDocumentProperties file = new DSOFile.OleDocumentProperties();
file.Open(@"C:\More_info.docx",false,DSOFile.dsoFileOpenOptions.dsoOptionDefault);
しかし、コードの実行中に次のエラーが表示されます。
型 'System.InvalidCastException' の未処理の例外が batchFile.exe で発生しました
追加情報: タイプ 'DSOFile.OleDocumentPropertiesClass' の COM オブジェクトをインターフェイス タイプ 'DSOFile._OleDocumentProperties' にキャストできません。IID '{58968145-CF01-4341-995F-2EE093F6ABA3}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーにより失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .
次に、行を実行したときにタイプを変更しfile
ますdynamic
が、ファイルに関連付けられたプロパティを追加または表示できません。すべてのプロパティが表示されます。関数の評価には、すべてのスレッドを実行する必要があります。
つまり、コードは次のようになります。
dynamic myFile = new DSOFile.OleDocumentProperties();
file.Open(@"C:\More_info.docx",false,DSOFile.dsoFileOpenOptions.dsoOptionDefault);
これは、デバッグ中に変数を監視するとどうなるかのイメージです。
私が間違っているのは何ですか?任意の提案をいただければ幸いです。