DataObject 클래스

정의

기본 데이터 전송 메커니즘을 구현합니다.

public ref class DataObject : System::Windows::Forms::IDataObject
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.Windows.Forms.IDataObject
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class DataObject : System.Runtime.InteropServices.ComTypes.IDataObject, System.Windows.Forms.IDataObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface UnsafeNativeMethods.IOleDataObject
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type DataObject = class
    interface IDataObject
    interface IDataObject
Public Class DataObject
Implements IDataObject
Public Class DataObject
Implements IDataObject, IDataObject
상속
DataObject
특성
구현

예제

다음 코드 예제에서는 에 데이터를 추가합니다 DataObject. 먼저 새 DataObject 구성 요소가 만들어지고 구성 요소가 저장됩니다. 그런 다음 적절한 형식의 데이터가 에 있는지 확인합니다 DataObject. 결과는 텍스트 상자에 표시됩니다. 이 코드를 만들려면 이 코드가 textBox1 필요합니다.

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데이터를 검색합니다. 첫째, 텍스트 데이터를 사용하여 새 DataObject 텍스트가 만들어집니다. 그런 다음 데이터를 검색하여 해당 형식을 문자열로 지정하고 텍스트 상자에 표시합니다. 데이터 형식은 텍스트에서 문자열로 자동으로 변환됩니다. 이 코드를 만들려면 이 코드가 textBox1 필요합니다.

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 데이터 전송을 위한 형식 독립적 메커니즘을 제공하는 인터페이스를 구현합니다.

A DataObject 는 일반적으로 끌어서 놓기 작업과 함께 Clipboard 사용됩니다. 클래스는 DataObject 인터페이스의 권장 구현을 IDataObject 제공합니다. 자신을 구현 IDataObject 하는 대신 클래스를 DataObject 사용하는 것이 좋습니다.

다양한 형식의 여러 데이터 조각을 에 저장할 DataObject수 있습니다. 데이터는 연결된 형식으로 DataObject 검색됩니다. 대상 애플리케이션을 알 수 없으므로 데이터를 여러 형식으로 배치 DataObject 하여 데이터가 애플리케이션에 적합한 형식이 될 가능성을 높일 수 있습니다. 미리 정의된 형식은 참조 DataFormats 하세요. 클래스의 인스턴스를 만들어 고유한 형식을 구현할 DataFormats.Format 수 있습니다.

데이터를 저장 DataObject하려면 생성자에 데이터를 전달하거나 호출 SetData합니다. 여러 형식의 데이터를 동일한 DataObject형식으로 추가할 수 있습니다. 추가한 데이터를 네이티브 형식으로만 검색하려면 매개 변수를 />로 설정하여 호출 합니다.

와 호환GetData되는 모든 형식으로 DataObject 데이터를 검색할 수 있습니다. 예를 들어 텍스트를 유니코드로 변환할 수 있습니다. 저장된 형식으로 데이터를 검색하려면 매개 변수를 />로 설정하여 호출 합니다.

데이터가 저장되는 형식을 확인하려면 다음을 호출 GetFormats합니다. 형식을 사용할 수 있는지 확인하려면 원하는 형식으로 호출 GetDataPresent 합니다.

이 클래스는 DataObject 공통 형식의 데이터를 더 쉽게 작업할 수 있는 추가 메서드를 제공합니다. 특정 형식DataObject의 데이터를 추가하려면 다음과 같은 SetText적절한 SetFormat 메서드를 사용합니다. 특정 형식 DataObject의 데이터를 검색하려면 먼저 적절한 ContainsFormat 메서드(예: ContainsText)를 호출하여 해당 형식의 데이터를 포함하는지 여부를 DataObject 확인한 다음 적절한 GetFormat 메서드(예: GetText)를 호출하여 데이터가 포함된 경우 DataObject 데이터를 검색합니다.

메모

클립보드와 함께 메타파일 형식을 사용하는 경우 특별한 고려 사항이 필요할 수 있습니다. DataObject 클래스의 현재 구현에 제한이 있으므로 .NET Framework에서 사용하는 메타파일 형식은 이전 메타파일 형식을 사용하는 애플리케이션에서 인식할 수 없습니다. 이 경우 Win32 API(클립보드 애플리케이션 프로그래밍 인터페이스)와 상호 운용해야 합니다.

개체를 클립보드에 배치할 수 있도록 직렬화가 가능해야 합니다. serialization에 대한 자세한 내용은 참조 System.Runtime.Serialization 하세요. 대상 애플리케이션에 매우 구체적인 데이터 형식이 필요한 경우 serialization 프로세스의 데이터에 추가된 헤더로 인해 애플리케이션이 데이터를 인식하지 못할 수 있습니다. 데이터 형식을 유지하려면 데이터를 배열 MemoryStreamByte 추가하고 메서드에 MemoryStreamSetData 전달합니다.

생성자

Name Description
DataObject()

DataObject 클래스의 새 인스턴스를 초기화합니다.

DataObject(Object)

클래스의 새 인스턴스를 DataObject 초기화하고 지정된 개체를 추가합니다.

DataObject(String, Object)

클래스의 새 인스턴스를 DataObject 초기화하고 지정된 개체를 지정된 형식으로 추가합니다.

메서드

Name Description
ContainsAudio()

데이터 개체에 형식의 데이터가 WaveAudio 포함되어 있는지 여부를 나타냅니다.

ContainsFileDropList()

데이터 개체에 형식이 있거나 해당 형식으로 변환할 수 있는 FileDrop 데이터가 포함되어 있는지 여부를 나타냅니다.

ContainsImage()

데이터 개체에 형식이 있거나 해당 형식으로 변환할 수 있는 Bitmap 데이터가 포함되어 있는지 여부를 나타냅니다.

ContainsText()

데이터 개체에 형식의 데이터가 UnicodeText 포함되어 있는지 여부를 나타냅니다.

ContainsText(TextDataFormat)

데이터 개체에 지정된 TextDataFormat 값으로 표시된 형식의 텍스트 데이터가 포함되어 있는지 여부를 나타냅니다.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.

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

데이터 개체에서 오디오 스트림을 검색합니다.

GetData(String, Boolean)

자동화된 변환 매개 변수를 사용하여 지정된 데이터 형식과 연결된 데이터를 반환하여 데이터를 형식으로 변환할지 여부를 결정합니다.

GetData(String)

지정된 데이터 형식과 연결된 데이터를 반환합니다.

GetData(Type)

지정된 클래스 형식 형식과 연결된 데이터를 반환합니다.

GetDataPresent(String, Boolean)

지정된 형식의 데이터가 포함되는지 또는 필요에 따라 지정된 형식으로 변환할 수 있는 데이터를 포함하는지 여부를 DataObject 결정합니다.

GetDataPresent(String)

DataObject 위치에 저장된 데이터가 지정된 형식과 연결되어 있는지 또는 지정된 형식으로 변환될 수 있는지 여부를 결정합니다.

GetDataPresent(Type)

DataObject 위치에 저장된 데이터가 지정된 형식과 연결되어 있는지 또는 지정된 형식으로 변환될 수 있는지 여부를 결정합니다.

GetFileDropList()

데이터 개체에서 파일 이름의 컬렉션을 검색합니다.

GetFormats()

DataObject 위치에 저장된 데이터가 연결되거나 변환될 수 있는 모든 형식의 목록을 반환합니다.

GetFormats(Boolean)

자동 변환 매개 변수를 사용하여 데이터가 연결되어 있거나 변환될 수 있는 DataObject 모든 형식의 목록을 반환하여 네이티브 데이터 형식만 검색할지 아니면 데이터를 변환할 수 있는 모든 형식을 검색할지 여부를 결정합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

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

데이터 개체에서 이미지를 검색합니다.

GetText()

형식으로 데이터 개체에서 텍스트 데이터를 검색합니다 UnicodeText .

GetText(TextDataFormat)

지정된 TextDataFormat 값으로 표시된 형식으로 데이터 개체에서 텍스트 데이터를 검색합니다.

GetType()

현재 인스턴스의 Type 가져옵니다.

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

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
SetAudio(Byte[])

배열을 Byte 데이터 개체로 변환한 후 형식으로 WaveAudio 배열을 Stream추가합니다.

SetAudio(Stream)

형식으로 데이터 개체에 a StreamWaveAudio 추가합니다.

SetData(Object)

개체 형식을 DataObject 데이터 형식으로 사용하여 지정된 개체를 추가합니다.

SetData(String, Boolean, Object)

지정된 형식을 사용하여 데이터를 다른 형식으로 변환할 DataObject 수 있는지 여부를 나타내는 지정된 개체를 추가합니다.

SetData(String, Object)

지정된 형식을 DataObject 사용하여 지정된 개체를 추가합니다.

SetData(Type, Object)

지정된 형식을 형식으로 DataObject 사용하여 지정된 개체를 추가합니다.

SetFileDropList(StringCollection)

형식의 데이터 개체 FileDrop 에 파일 이름 컬렉션을 추가합니다.

SetImage(Image)

Image 데이터 개체에 형식을 Bitmap 추가합니다.

SetText(String, TextDataFormat)

지정한 TextDataFormat 값으로 표시된 형식으로 데이터 개체에 텍스트 데이터를 추가합니다.

SetText(String)

데이터 개체에 텍스트 데이터를 형식으로 UnicodeText 추가합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

데이터 개체와 권고 싱크 간에 연결을 만듭니다. 이 메서드는 권고 싱크를 지원 하 고 개체의 데이터 변경 내용에 대 한 알림을 권고 싱크를 사용 하는 개체에 의해 호출 됩니다.

IDataObject.DUnadvise(Int32)

이전에 설정된 알림 연결을 제거합니다.

IDataObject.EnumDAdvise(IEnumSTATDATA)

현재 권고 연결을 열거하는 데 사용할 수 있는 개체를 만듭니다.

IDataObject.EnumFormatEtc(DATADIR)

데이터 개체의 구조를 열거하기 FORMATETC 위한 개체를 만듭니다. 이러한 구조체는 또는 에 대한 호출 GetData(FORMATETC, STGMEDIUM)SetData(FORMATETC, STGMEDIUM, Boolean)에 사용됩니다.

IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC)

더 복잡한 구조체와 논리적으로 동일한 표준 FORMATETC 구조를 제공합니다. 이 메서드를 사용하여 두 구조 FORMATETC 체가 동일한 데이터를 반환할지 여부를 확인하여 중복 렌더링의 필요성을 제거합니다.

IDataObject.GetData(FORMATETC, STGMEDIUM)

원본 데이터 개체에서 데이터를 가져옵니다. 데이터 소비자가 호출하는 메서드는 GetData(FORMATETC, STGMEDIUM) 지정된 구조에 설명된 FORMATETC 데이터를 렌더링하고 지정된 STGMEDIUM 구조를 통해 전송합니다. 그런 다음 호출자는 구조를 해제하는 책임을 맡습니다 STGMEDIUM .

IDataObject.GetDataHere(FORMATETC, STGMEDIUM)

원본 데이터 개체에서 데이터를 가져옵니다. 데이터 소비자가 호출하는 이 메서드는 호출자가 지정된 스토리지 매체를 할당하고 해제해야 한다는 점에서 메서드와 다릅니다 GetData(FORMATETC, STGMEDIUM) .

IDataObject.QueryGetData(FORMATETC)

데이터 개체가 구조에 설명된 FORMATETC 데이터를 렌더링할 수 있는지 여부를 결정합니다. 붙여넣기 또는 놓기 작업을 시도하는 개체는 호출하기 전에 이 메서드를 호출 GetData(FORMATETC, STGMEDIUM) 하여 작업이 성공할 수 있는지 여부를 표시할 수 있습니다.

IDataObject.SetData(FORMATETC, STGMEDIUM, Boolean)

이 메서드를 구현하는 개체로 데이터를 전송합니다. 이 메서드는 데이터 원본을 포함 하는 개체에 의해 호출 됩니다.

적용 대상

추가 정보