DataObject 클래스

정의

기본 데이터 전송 메커니즘을 구현합니다.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
상속
DataObject
특성
구현

예제

다음 코드 예제에서는 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

다음 예에서는 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

설명

DataObject는 데이터 전송을 위한 형식 독립적 메커니즘을 제공 하는 IDataObject 인터페이스를 구현 합니다.DataObject implements the IDataObject interface, whose methods provide a format-independent mechanism for data transfer.

DataObject은 일반적으로 Clipboard 및 끌어서 놓기 작업에서 사용 됩니다.A 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. 추가 하는 데이터를 네이티브 형식 으로만 검색 하려면 autoConvert 매개 변수를 false로 설정 하 여 SetData(String, Boolean, Object)를 호출 합니다.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.

GetData와 호환 되는 형식으로 DataObject에서 데이터를 검색할 수 있습니다.Data can be retrieved from a DataObject in any format which is compatible with GetData. 예를 들어 텍스트를 유니코드로 변환할 수 있습니다.For example, text can be converted to Unicode. 데이터가 저장 된 형식으로 데이터를 검색 하려면 autoConvert 매개 변수를 false로 설정 하 여 GetData를 호출 합니다.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.0에서 DataObject 클래스는 일반적인 형식으로 데이터 작업을 용이 하 게 하는 추가 메서드를 제공 합니다.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에 추가 하려면 SetText와 같은 적절 한 Setformat 메서드를 사용 합니다.To add data of a particular format to the DataObject, use the appropriate SetFormat method, such as SetText. DataObject에서 특정 형식의 데이터를 검색 하려면 먼저 적절 한 Containsformat 메서드 (예: ContainsText)를 호출 하 여 DataObject에 해당 형식의 데이터가 포함 되어 있는지 확인 한 다음 적절 한 Get형식을 호출 합니다. 데이터를 포함 하는 DataObject 경우 데이터를 검색 하는 메서드 (예: GetText)입니다.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).

개체를 클립보드에 넣을 수 있도록 개체를 serialize 할 수 있어야 합니다.An object must be serializable for it to be put on the Clipboard. Serialization에 대 한 자세한 내용은 System.Runtime.Serialization를 참조 하세요.See System.Runtime.Serialization for more information on serialization. 대상 애플리케이션 특정 데이터 형식에 필요한 경우 데이터 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에 추가 하 고 MemoryStreamSetData 메서드에 전달 합니다.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 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the DataObject class.

DataObject(Object)

DataObject 클래스의 새 인스턴스를 초기화하고 지정된 개체를 추가합니다.Initializes a new instance of the DataObject class and adds the specified object to it.

DataObject(String, Object)

DataObject 클래스의 새 인스턴스를 초기화하고 지정된 형식의 지정된 개체를 추가합니다.Initializes a new instance of the DataObject class and adds the specified object in the specified format.

메서드

ContainsAudio()

데이터 개체에 WaveAudio 형식의 데이터가 포함되어 있는지 여부를 나타냅니다.Indicates whether the data object contains data in the WaveAudio format.

ContainsFileDropList()

데이터 개체에 FileDrop 형식으로 되어 있거나 해당 형식으로 변환될 수 있는 데이터가 포함되어 있는지 여부를 나타냅니다.Indicates whether the data object contains data that is in the FileDrop format or can be converted to that format.

ContainsImage()

데이터 개체에 Bitmap 형식으로 되어 있거나 해당 형식으로 변환될 수 있는 데이터가 포함되어 있는지 여부를 나타냅니다.Indicates whether the data object contains data that is in the Bitmap format or can be converted to that format.

ContainsText()

데이터 개체에 UnicodeText 형식의 데이터가 포함되어 있는지 여부를 나타냅니다.Indicates whether the data object contains data in the UnicodeText format.

ContainsText(TextDataFormat)

지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터가 데이터 개체에 포함되어 있는지 여부를 나타냅니다.Indicates whether the data object contains text data in the format indicated by the specified TextDataFormat value.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetAudioStream()

데이터 개체에서 오디오 스트림을 검색합니다.Retrieves an audio stream from the data object.

GetData(String)

지정된 데이터 형식과 관련된 데이터를 반환합니다.Returns the data associated with the specified data format.

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)

지정된 클래스 형식과 관련된 데이터를 반환합니다.Returns the data associated with the specified class type format.

GetDataPresent(String)

DataObject에 저장된 데이터가 지정된 형식과 연결되어 있거나 지정된 형식으로 변환될 수 있는지 여부를 확인합니다.Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

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)

DataObject에 저장된 데이터가 지정된 형식과 연결되어 있거나 지정된 형식으로 변환될 수 있는지 여부를 확인합니다.Determines whether data stored in this DataObject is associated with, or can be converted to, the specified format.

GetFileDropList()

데이터 개체에서 파일 이름의 컬렉션을 검색합니다.Retrieves a collection of file names from the data object.

GetFormats()

DataObject에 저장된 데이터가 관련되어 있거나 변환될 수 있는 모든 형식의 목록을 반환합니다.Returns a list of all formats that data stored in this DataObject is associated with or can be converted to.

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()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetImage()

데이터 개체에서 이미지를 검색합니다.Retrieves an image from the data object.

GetText()

데이터 개체에서 UnicodeText 형식의 텍스트 데이터를 검색합니다.Retrieves text data from the data object in the UnicodeText format.

GetText(TextDataFormat)

지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터를 데이터 개체에서 검색합니다.Retrieves text data from the data object in the format indicated by the specified TextDataFormat value.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
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)

Stream 형식의 WaveAudio을 데이터 개체에 추가합니다.Adds a Stream to the data object in the WaveAudio format.

SetData(Object)

개체 형식을 데이터 형식으로 사용하여 DataObject에 지정된 개체를 추가합니다.Adds the specified object to the DataObject using the object type as the data format.

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)

지정된 형식을 사용하여 DataObject에 지정된 개체를 추가합니다.Adds the specified object to the DataObject using the specified format.

SetData(Type, Object)

지정된 형식을 형식으로 사용하여 DataObject에 지정된 개체를 추가합니다.Adds the specified object to the DataObject using the specified type as the format.

SetFileDropList(StringCollection)

FileDrop 형식의 파일 이름 컬렉션을 데이터 개체에 추가합니다.Adds a collection of file names to the data object in the FileDrop format.

SetImage(Image)

Image 형식의 Bitmap를 데이터 개체에 추가합니다.Adds an Image to the data object in the Bitmap format.

SetText(String)

UnicodeText 형식의 텍스트 데이터를 데이터 개체에 추가합니다.Adds text data to the data object in the UnicodeText format.

SetText(String, TextDataFormat)

지정된 TextDataFormat 값이 나타내는 형식의 텍스트 데이터를 데이터 개체에 추가합니다.Adds text data to the data object in the format indicated by the specified TextDataFormat value.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

데이터 개체와 advise 싱크 간의 연결을 만듭니다.Creates a connection between a data object and an advisory sink. 이 메서드는 advise 싱크를 지원하는 개체에 의해 호출되며, advise 싱크가 개체의 데이터 변경 내용에 대한 알림을 받을 수 있도록 합니다.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)

이전에 설정된 알림 연결을 제거합니다.Destroys a notification connection that had been previously established.

IDataObject.EnumDAdvise(IEnumSTATDATA)

현재 advise 연결을 열거하는 데 사용할 수 있는 개체를 만듭니다.Creates an object that can be used to enumerate the current advisory connections.

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)

보다 복잡한 구조체와 논리적으로 일치하는 표준 FORMATETC 구조체를 제공합니다.Provides a standard FORMATETC structure that is logically equivalent to a more complex structure. 이 메서드를 사용하면 서로 다른 두 개의 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)

소스 데이터 개체에서 데이터를 가져옵니다.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)

소스 데이터 개체에서 데이터를 가져옵니다.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)

데이터 개체가 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)

이 메서드를 구현하는 개체에 데이터를 전송합니다.Transfers data to the object that implements this method. 이 메서드는 데이터 소스가 들어 있는 개체에서 호출됩니다.This method is called by an object that contains a data source.

적용 대상

추가 정보