DataObject DataObject DataObject DataObject Class

定義

基本データ転送機構を実装します。Implements a basic data transfer mechanism.

public ref class DataObject : System::Runtime::InteropServices::ComTypes::IDataObject, System::Windows::Forms::IDataObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class DataObject : System.Runtime.InteropServices.ComTypes.IDataObject, System.Windows.Forms.IDataObject
type DataObject = class
    interface IDataObject
    interface IDataObject
Public Class DataObject
Implements IDataObject, IDataObject
継承
DataObjectDataObjectDataObjectDataObject
属性
実装

次のコード例では、 DataObjectにデータを追加します。The following code example adds data in a DataObject. まず、新しいDataObjectが作成され、コンポーネントが格納されます。First, a new DataObject is created and a component is stored in it. 次に、適切な型のデータがに存在DataObjectするかどうかを確認します。Then, it checks to see if data in the appropriate type exists in the DataObject. 結果がテキストボックスに表示されます。The result is displayed in a text box. このコードではtextBox1 、が作成されている必要があります。This code requires that textBox1 has been created.

private:
   void AddMyData3()
   {
      // Creates a component to store in the data object.
      Component^ myComponent = gcnew Component;
      
      // Creates a new data object.
      DataObject^ myDataObject = gcnew DataObject;
      
      // Adds the component to the DataObject.
      myDataObject->SetData( myComponent );
      
      // Prints whether data of the specified type is in the DataObject.
      Type^ myType = myComponent->GetType();
      if ( myDataObject->GetDataPresent( myType ) )
      {
         textBox1->Text = String::Concat( "Data of type ", myType,
            " is present in the DataObject" );
      }
      else
      {
         textBox1->Text = String::Concat( "Data of type ", myType,
            " is not present in the DataObject" );
      }
   }
private void AddMyData3() {
    // Creates a component to store in the data object.
    Component myComponent = new Component();
 
    // Creates a new data object.
    DataObject myDataObject = new DataObject();
 
    // Adds the component to the DataObject.
    myDataObject.SetData(myComponent);
 
    // Prints whether data of the specified type is in the DataObject.
    Type myType = myComponent.GetType();
    if(myDataObject.GetDataPresent(myType))
       textBox1.Text = "Data of type " + myType.ToString() + 
       " is present in the DataObject";
    else
       textBox1.Text = "Data of type " + myType.ToString() +
       " is not present in the DataObject";
 }
Private Sub AddMyData3()
    ' Creates a component to store in the data object.
    Dim myComponent As New Component()
    
    ' Creates a new data object.
    Dim myDataObject As New DataObject()
    
    ' Adds the component to the DataObject.
    myDataObject.SetData(myComponent)
    
    ' Prints whether data of the specified type is in the DataObject.
    Dim myType As Type = myComponent.GetType()
    If myDataObject.GetDataPresent(myType) Then
        textBox1.Text = "Data of type " & myType.ToString() & _
            " is present in the DataObject"
    Else
        textBox1.Text = "Data of type " & myType.ToString() & _
            " is not present in the DataObject"
    End If
End Sub 'AddMyData3

次の例では、にDataObject格納されているデータを取得します。The next example retrieves the data stored in a DataObject. 最初に、テキストDataObjectデータを使用して新しいが作成されます。First, a new DataObject is created with text data. 次に、データが取得され、その形式が文字列として指定され、テキストボックスに表示されます。Then, the data is retrieved, specifying its format as a string, and displayed in a text box. データ形式は、テキストから文字列に自動的に変換されます。The data format is automatically converted from text to string. このコードではtextBox1 、が作成されている必要があります。This code requires that textBox1 has been created.

void GetMyData2()
{
   // Creates a new data object using a string and the text format.
   DataObject^ myDataObject = gcnew DataObject( DataFormats::Text,"Text to Store" );
   
   // Prints the string in a text box.
   textBox1->Text = myDataObject->GetData( DataFormats::Text )->ToString();
}
private void GetMyData2() {
    // Creates a new data object using a string and the text format.
    DataObject myDataObject = new DataObject(DataFormats.Text, "Text to Store");
 
    // Prints the string in a text box.
    textBox1.Text = myDataObject.GetData(DataFormats.Text).ToString();
 }
Private Sub GetMyData2()
    ' Creates a new data object using a string and the text format.
    Dim myDataObject As New DataObject(DataFormats.Text, "Text to Store")
    
    ' Prints the string in a text box.
    textBox1.Text = myDataObject.GetData(DataFormats.Text).ToString()
End Sub 'GetMyData2

注釈

DataObjectIDataObjectインターフェイスを実装します。メソッドは、データ転送の形式に依存しない機構を提供します。DataObject implements the IDataObject interface, whose methods provide a format-independent mechanism for data transfer.

は、通常、ドラッグアンドClipboardドロップ操作でおよびと共に使用されます。 DataObjectA DataObject is typically used with the Clipboard and in drag-and-drop operations. クラスDataObjectには、 IDataObjectインターフェイスの推奨される実装が用意されています。The DataObject class provides the recommended implementation of the IDataObject interface. 自分で実装IDataObjectするのではDataObjectなく、クラスを使用することをお勧めします。It is suggested that you use the DataObject class rather than implementing IDataObject yourself.

異なる形式のデータの複数の部分をに格納DataObjectすることができます。Multiple pieces of data in different formats can be stored in a DataObject. データは、 DataObject関連付けられた形式によってから取得されます。Data is retrieved from a DataObject by its associated format. ターゲットアプリケーションが不明な場合があるため、データDataObjectをに複数の形式で配置することで、データがアプリケーションに適した形式になる可能性を高めることができます。Because the target application might not be known, you can increase the likelihood that the data will be in the appropriate format for an application by placing the data in a DataObject in multiple formats. 定義DataFormats済みの形式については、を参照してください。See DataFormats for the predefined formats. DataFormats.Formatクラスのインスタンスを作成することによって、独自の形式を実装できます。You can implement your own format by creating an instance of the DataFormats.Format class.

DataObjectデータを格納するには、データをコンストラクターに渡すかSetData、を呼び出します。To store data in a DataObject, pass the data to the constructor or call SetData. 複数の形式のデータを同じDataObjectに追加することができます。You can add data in multiple formats to the same DataObject. 追加するデータをネイティブ形式でのみ取得する場合は、 SetData(String, Boolean, Object) autoConvertパラメーターをにfalse設定してを呼び出します。If you want the data you add to be retrieved in its native format only, call SetData(String, Boolean, Object) with the autoConvert parameter set to false.

データは、 DataObjectGetData互換性のある任意の形式でから取得できます。Data can be retrieved from a DataObject in any format which is compatible with GetData. たとえば、テキストを Unicode に変換できます。For example, text can be converted to Unicode. 格納された形式でデータを取得するには、 GetData autoConvertパラメーターをにfalse設定してを呼び出します。To retrieve data in the format in which it was stored, call GetData with the autoConvert parameter set to false.

データが格納されている形式を確認するGetFormatsには、を呼び出します。To determine what formats the data is stored in, call GetFormats. 形式が使用可能かどうかを判断GetDataPresentするには、目的の形式でを呼び出します。To determine if a format is available, call GetDataPresent with the desired format.

.NET Framework 2.0.NET Framework 2.0DataObject 、一般的な形式のデータを簡単に操作できるようにするための追加のメソッドがクラスに用意されています。In .NET Framework 2.0.NET Framework 2.0, the DataObject class provides additional methods that make it easier to work with data in common formats. DataObject特定の形式のデータをに追加するには、などSetの適切な書式指定メソッドSetTextを使用します。To add data of a particular format to the DataObject, use the appropriate SetFormat method, such as SetText. からDataObject特定の形式のデータを取得するには、まず適切Contains書式指定メソッド ( ContainsTextなど) を呼び出してDataObject 、にその形式のデータが含まれているかどうかを判断し、適切なを呼び出します。GetGetTextにデータDataObjectが含まれている場合は、書式指定メソッド (など) を取得します。To retrieve data of a particular format from the DataObject, first call the appropriate ContainsFormat method (such as ContainsText) to determine whether the DataObject contains data in that format, then call the appropriate GetFormat method (such as GetText) to retrieve the data if the DataObject contains it.

注意

メタファイル形式をクリップボードと共に使用する場合は、特別な考慮事項が必要になることがあります。Special considerations may be necessary when using the metafile format with the Clipboard. DataObjectクラスの現在の実装の制限により、.NET Framework によって使用されるメタファイル形式は、古いメタファイル形式を使用するアプリケーションで認識されない場合があります。Due to a limitation in the current implementation of the DataObject class, the metafile format used by the .NET Framework may not be recognized by applications that use an older metafile format. この場合は、Win32 クリップボードアプリケーションプログラミングインターフェイス (Api) と相互運用する必要があります。In this case, you must interoperate with the Win32 Clipboard application programming interfaces (APIs).

オブジェクトをクリップボードに格納するには、オブジェクトをシリアル化できる必要があります。An object must be serializable for it to be put on the Clipboard. シリアルSystem.Runtime.Serialization化の詳細については、「」を参照してください。See System.Runtime.Serialization for more information on serialization. ターゲットアプリケーションが非常に特殊なデータ形式を必要とする場合は、シリアル化プロセスでデータに追加されたヘッダーによって、アプリケーションがデータを認識できなくなることがあります。If your target application requires a very specific data format, the headers added to the data in the serialization process may prevent the application from recognizing your data. データ形式を保持するには、データByteを配列MemoryStreamとしてに追加SetDataMemoryStream 、をメソッドに渡します。To preserve your data format, add your data as a Byte array to a MemoryStream and pass the MemoryStream to the SetData method.

コンストラクター

DataObject() DataObject() DataObject() DataObject()

DataObject クラスの新しいインスタンスを初期化します。Initializes a new instance of the DataObject class.

DataObject(Object) DataObject(Object) DataObject(Object) DataObject(Object)

DataObject クラスの新しいインスタンスを初期化し、指定したオブジェクトを追加します。Initializes a new instance of the DataObject class and adds the specified object to it.

DataObject(String, Object) DataObject(String, Object) DataObject(String, Object) DataObject(String, Object)

DataObject クラスの新しいインスタンスを初期化し、指定したオブジェクトを指定した形式で追加します。Initializes a new instance of the DataObject class and adds the specified object in the specified format.

メソッド

ContainsAudio() ContainsAudio() ContainsAudio() ContainsAudio()

データ オブジェクトに WaveAudio 形式のデータが含まれているかどうかを示します。Indicates whether the data object contains data in the WaveAudio format.

ContainsFileDropList() ContainsFileDropList() ContainsFileDropList() ContainsFileDropList()

データ オブジェクトに FileDrop 形式のデータか、その形式に変換できるデータが含まれているかどうかを示します。Indicates whether the data object contains data that is in the FileDrop format or can be converted to that format.

ContainsImage() ContainsImage() ContainsImage() ContainsImage()

データ オブジェクトに Bitmap 形式のデータか、その形式に変換できるデータが含まれているかどうかを示します。Indicates whether the data object contains data that is in the Bitmap format or can be converted to that format.

ContainsText() ContainsText() ContainsText() ContainsText()

データ オブジェクトに UnicodeText 形式のデータが含まれているかどうかを示します。Indicates whether the data object contains data in the UnicodeText format.

ContainsText(TextDataFormat) ContainsText(TextDataFormat) ContainsText(TextDataFormat) ContainsText(TextDataFormat)

指定した TextDataFormat 値で示される形式のテキスト データが、データ オブジェクトに含まれているかどうかを示します。Indicates whether the data object contains text data in the format indicated by the specified TextDataFormat value.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAudioStream() GetAudioStream() GetAudioStream() GetAudioStream()

データ オブジェクトからオーディオ ストリームを取得します。Retrieves an audio stream from the data object.

GetData(String) GetData(String) GetData(String) GetData(String)

指定したデータ形式に関連付けられたデータを返します。Returns the data associated with the specified data format.

GetData(String, Boolean) GetData(String, Boolean) GetData(String, Boolean) GetData(String, Boolean)

データを指定形式に変換するかどうかを判断するための自動変換パラメーターを使用して、指定したデータ形式に関連付けられているデータを返します。Returns the data associated with the specified data format, using an automated conversion parameter to determine whether to convert the data to the format.

GetData(Type) GetData(Type) GetData(Type) GetData(Type)

指定したクラス型形式に関連付けられたデータを返します。Returns the data associated with the specified class type format.

GetDataPresent(String) GetDataPresent(String) GetDataPresent(String) GetDataPresent(String)

この DataObject に格納されているデータが、指定した形式と関連付けられているかどうかや、その形式に変換できるかどうかを確認します。Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

GetDataPresent(String, Boolean) GetDataPresent(String, Boolean) GetDataPresent(String, Boolean) GetDataPresent(String, Boolean)

指定した形式のデータがこの DataObject に含まれているかどうかを確認し、オプションで、指定した形式に変換できるデータが含まれているかどうかも確認します。Determines whether this DataObject contains data in the specified format or, optionally, contains data that can be converted to the specified format.

GetDataPresent(Type) GetDataPresent(Type) GetDataPresent(Type) GetDataPresent(Type)

この DataObject に格納されているデータが、指定した形式と関連付けられているかどうかや、その形式に変換できるかどうかを確認します。Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

GetFileDropList() GetFileDropList() GetFileDropList() GetFileDropList()

ファイル名のコレクションをデータ オブジェクトから取得します。Retrieves a collection of file names from the data object.

GetFormats() GetFormats() GetFormats() GetFormats()

この DataObject に格納されたデータに関連付けられているすべての形式、または変換できるすべての形式のリストを返します。Returns a list of all formats that data stored in this DataObject is associated with or can be converted to.

GetFormats(Boolean) GetFormats(Boolean) GetFormats(Boolean) GetFormats(Boolean)

自動変換パラメーターを使用して、ネイティブのデータ形式だけを取得するのか、またはデータを変換することができるすべての形式を取得するのかを決定し、この DataObject に格納されているデータに関連付けられている形式、あるいは変換できるすべての形式のリストを返します。Returns a list of all formats that data stored in this DataObject is associated with or can be converted to, using an automatic conversion parameter to determine whether to retrieve only native data formats or all formats that the data can be converted to.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetImage() GetImage() GetImage() GetImage()

データ オブジェクトからイメージを取得します。Retrieves an image from the data object.

GetText() GetText() GetText() GetText()

データ オブジェクトから UnicodeText 形式でテキスト データを取得します。Retrieves text data from the data object in the UnicodeText format.

GetText(TextDataFormat) GetText(TextDataFormat) GetText(TextDataFormat) GetText(TextDataFormat)

データ オブジェクトから、指定した TextDataFormat 値で示される形式でテキスト データを取得します。Retrieves text data from the data object in the format indicated by the specified TextDataFormat value.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
SetAudio(Byte[]) SetAudio(Byte[]) SetAudio(Byte[]) SetAudio(Byte[])

Byte 配列を WaveAudio に変換してから、Stream 形式でデータ オブジェクトに追加します。Adds a Byte array to the data object in the WaveAudio format after converting it to a Stream.

SetAudio(Stream) SetAudio(Stream) SetAudio(Stream) SetAudio(Stream)

データ オブジェクトに Stream 形式で WaveAudio を追加します。Adds a Stream to the data object in the WaveAudio format.

SetData(Object) SetData(Object) SetData(Object) SetData(Object)

オブジェクト型をデータ形式として使用して、指定したオブジェクトを DataObject に追加します。Adds the specified object to the DataObject using the object type as the data format.

SetData(String, Boolean, Object) SetData(String, Boolean, Object) SetData(String, Boolean, Object) SetData(String, Boolean, Object)

形式を指定し、データを別形式に変換できるかどうかを指定して、指定したオブジェクトを DataObject に追加します。Adds the specified object to the DataObject using the specified format and indicating whether the data can be converted to another format.

SetData(String, Object) SetData(String, Object) SetData(String, Object) SetData(String, Object)

形式を指定して、指定したオブジェクトを DataObject に追加します。Adds the specified object to the DataObject using the specified format.

SetData(Type, Object) SetData(Type, Object) SetData(Type, Object) SetData(Type, Object)

指定した型を形式として使用して、指定したオブジェクトを DataObject に追加します。Adds the specified object to the DataObject using the specified type as the format.

SetFileDropList(StringCollection) SetFileDropList(StringCollection) SetFileDropList(StringCollection) SetFileDropList(StringCollection)

データ オブジェクトに FileDrop 形式でファイル名のコレクションを追加します。Adds a collection of file names to the data object in the FileDrop format.

SetImage(Image) SetImage(Image) SetImage(Image) SetImage(Image)

データ オブジェクトに Image 形式で Bitmap を追加します。Adds an Image to the data object in the Bitmap format.

SetText(String) SetText(String) SetText(String) SetText(String)

データ オブジェクトに UnicodeText 形式でテキスト データを追加します。Adds text data to the data object in the UnicodeText format.

SetText(String, TextDataFormat) SetText(String, TextDataFormat) SetText(String, TextDataFormat) SetText(String, TextDataFormat)

データ オブジェクトに、指定した TextDataFormat 値で示される形式でテキスト データを追加します。Adds text data to the data object in the format indicated by the specified TextDataFormat value.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32) IDataObject.DAdvise(FORMATETC, ADVF, IAdviseSink, Int32)

データ オブジェクトとアドバイズ シンク間の接続を作成します。Creates a connection between a data object and an advisory sink. このメソッドは、アドバイズ シンクをサポートするオブジェクトによって呼び出され、オブジェクトのデータの変更をアドバイズ シンクに通知できるようにします。This method is called by an object that supports an advisory sink and enables the advisory sink to be notified of changes in the object's data.

IDataObject.DUnadvise(Int32) IDataObject.DUnadvise(Int32) IDataObject.DUnadvise(Int32) IDataObject.DUnadvise(Int32)

以前に確立されていた通知の接続を破棄します。Destroys a notification connection that had been previously established.

IDataObject.EnumDAdvise(IEnumSTATDATA) IDataObject.EnumDAdvise(IEnumSTATDATA) IDataObject.EnumDAdvise(IEnumSTATDATA) IDataObject.EnumDAdvise(IEnumSTATDATA)

現在のアドバイザリ コネクションを列挙するために使用できるオブジェクトを作成します。Creates an object that can be used to enumerate the current advisory connections.

IDataObject.EnumFormatEtc(DATADIR) IDataObject.EnumFormatEtc(DATADIR) IDataObject.EnumFormatEtc(DATADIR) IDataObject.EnumFormatEtc(DATADIR)

データ オブジェクトの FORMATETC 構造体を列挙するためのオブジェクトを作成します。Creates an object for enumerating the FORMATETC structures for a data object. これらの構造体は、GetData(FORMATETC, STGMEDIUM) または SetData(FORMATETC, STGMEDIUM, Boolean) の呼び出しで使用されます。These structures are used in calls to GetData(FORMATETC, STGMEDIUM) or SetData(FORMATETC, STGMEDIUM, Boolean).

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

より複雑な構造体と論理的に等価な、標準の FORMATETC 構造体を提供します。Provides a standard FORMATETC structure that is logically equivalent to a more complex structure. このメソッドを使用して、2 つの異なる FORMATETC 構造体が同一のデータを返すかどうかを確認し、表示を二重化する必要をなくします。Use this method to determine whether two different FORMATETC structures would return the same data, removing the need for duplicate rendering.

IDataObject.GetData(FORMATETC, STGMEDIUM) IDataObject.GetData(FORMATETC, STGMEDIUM) IDataObject.GetData(FORMATETC, STGMEDIUM) IDataObject.GetData(FORMATETC, STGMEDIUM)

ソース データ オブジェクトからデータを取得します。Obtains data from a source data object. GetData(FORMATETC, STGMEDIUM) メソッドは、データ コンシューマーによって呼び出され、指定された FORMATETC 構造体に記述されているデータを表示し、指定された STGMEDIUM 構造体を使用してそのデータを転送します。The GetData(FORMATETC, STGMEDIUM) method, which is called by a data consumer, renders the data described in the specified FORMATETC structure and transfers it through the specified STGMEDIUM structure. 呼び出し元は、その後で STGMEDIUM 構造体を解放する必要があります。The caller then assumes responsibility for releasing the STGMEDIUM structure.

IDataObject.GetDataHere(FORMATETC, STGMEDIUM) IDataObject.GetDataHere(FORMATETC, STGMEDIUM) IDataObject.GetDataHere(FORMATETC, STGMEDIUM) IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

ソース データ オブジェクトからデータを取得します。Obtains data from a source data object. このメソッドはデータ コンシューマーによって呼び出され、呼び出し元が、指定したストレージ メディアを割り当て、解放する必要があるという点で GetData(FORMATETC, STGMEDIUM) メソッドとは異なります。This method, which is called by a data consumer, differs from the GetData(FORMATETC, STGMEDIUM) method in that the caller must allocate and free the specified storage medium.

IDataObject.QueryGetData(FORMATETC) IDataObject.QueryGetData(FORMATETC) IDataObject.QueryGetData(FORMATETC) IDataObject.QueryGetData(FORMATETC)

データ オブジェクトが、FORMATETC 構造体で記述されているデータを表示できるかどうかを確認します。Determines whether the data object is capable of rendering the data described in the FORMATETC structure. 貼り付け操作またはドロップ操作をしようとしているオブジェクトは、GetData(FORMATETC, STGMEDIUM) を呼び出す前にこのメソッドを呼び出して、操作が正常に実行できるかどうかを示す値を取得できます。Objects attempting a paste or drop operation can call this method before calling GetData(FORMATETC, STGMEDIUM) to get an indication of whether the operation may be successful.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean) IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

このメソッドを実装するオブジェクトにデータを転送します。Transfers data to the object that implements this method. このメソッドは、データ ソースを格納しているオブジェクトから呼び出されます。This method is called by an object that contains a data source.

適用対象

こちらもご覧ください