C#においてClipboardにデータを貼り付ける場合には、SetDataObjectをコールすると、Clipboardにデータを貼り付けることができます。
ただし、メインメソッドに、STAThreadAttribute属性をマークしなくては、ビルドでエラーになってしまいます。
[STAThread]
static void Main()
と宣言しなくてはなりません。
MSDNより抜粋すると、Clipboard クラスは、シングル スレッド アパートメント (STA: Single Thread Apartment) モードに設定されているスレッドでだけ使用できるようになっているからだそうです。
これは、COMを利用するために、付加する属性だそうです。まだ詳しいことはわかっていないので、なぜ、シングル スレッド アパートメントでしか動作できないのかはわかっていませんので、以下は間違いかもしれません。
アパートメントはCOMのスレッドモデルから来ているようです。
COMを利用する際に必要なので、このようにコードに付加されているみたいです。
内部でCOMを利用しているものがあるのでClipboardクラスで、使用する際には、[STAThread]を明示する必要があるようです。
ただし、メインメソッドに、STAThreadAttribute属性をマークしなくては、ビルドでエラーになってしまいます。
[STAThread]
static void Main()
と宣言しなくてはなりません。
MSDNより抜粋すると、Clipboard クラスは、シングル スレッド アパートメント (STA: Single Thread Apartment) モードに設定されているスレッドでだけ使用できるようになっているからだそうです。
これは、COMを利用するために、付加する属性だそうです。まだ詳しいことはわかっていないので、なぜ、シングル スレッド アパートメントでしか動作できないのかはわかっていませんので、以下は間違いかもしれません。
アパートメントはCOMのスレッドモデルから来ているようです。
COMを利用する際に必要なので、このようにコードに付加されているみたいです。
内部でCOMを利用しているものがあるのでClipboardクラスで、使用する際には、[STAThread]を明示する必要があるようです。