貼り付ける前にコンテンツを処理するために、リッチテキストボックスの貼り付けイベントをインターセプトしています。テーブルや画像などが含まれている場合は、いくつかのカスタムを行う必要があります。コピーされた選択範囲が Word 2010 からのもので、混合コンテンツ (テキストと表/画像など) で構成されている場合、Word はコンテンツをさまざまな形式でクリップボードに配置します。これらには HTML と RTF が含まれますが、私はむしろ WordML を使用したいと考えています。ClipSpyを使って、実際にクリップボードにどのようなフォーマットやデータが入っているか確認したところ、「埋め込みソース」のフォーマットはWordMLを含むフォーマットのようです。これはパッケージとして開くことができると思います:
var stream = Clipboard.GetData("Embed Source") as MemoryStream;
var package = Package.Open(stream);
EndOfStreamException をスローし、何か他のものでラップされている可能性があると考えています。ストリームをディスクに書き込み、7-zip を使用して開くと、コンテンツが期待どおりであることを確認できます。したがって、基本的に 2 つの質問があります。「埋め込みソース」は、WordML を取得するための正しい DataObject ですか? もしそうなら、どうすればデシリアライズできますか?