DataObject.SetData Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Adds an object to the DataObject.
Overloads
SetData(Object) |
Adds the specified object to the DataObject using the object type as the data format. |
SetData(String, Object) |
Adds the specified object to the DataObject using the specified format. |
SetData(Type, Object) |
Adds the specified object to the DataObject using the specified type as the format. |
SetData(String, Boolean, Object) |
Adds the specified object to the DataObject using the specified format and indicating whether the data can be converted to another format. |
SetData(Object)
Adds the specified object to the DataObject using the object type as the data format.
public:
virtual void SetData(System::Object ^ data);
public virtual void SetData (object data);
public virtual void SetData (object? data);
abstract member SetData : obj -> unit
override this.SetData : obj -> unit
Public Overridable Sub SetData (data As Object)
Parameters
- data
- Object
The data to store.
Implements
Examples
The following code example stores data in a DataObject. First, a new DataObject is created and a component is stored in it. Then, the data is retrieved by specifying the class. The result is displayed in a text box.
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->Name,
" is present in the DataObject" );
}
else
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" 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.GetType().Name +
" is present in the DataObject";
else
textBox1.Text = "Data of type " + myType.GetType().Name +
" 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.GetType().Name & _
" is present in the DataObject"
Else
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is not present in the DataObject"
End If
End Sub
Remarks
Important
Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see Validate All Inputs.
If you do not know the format of the target application, you can store data in multiple formats using this method. Data stored using this method can be converted to a compatible format when it is retrieved.
The SetData(Object) overload stores the data
value in a format that it determines by calling the Object.GetType method. If data
implements the ISerializable interface, this overload also stores the value in the Serializable format.
See also
Applies to
SetData(String, Object)
Adds the specified object to the DataObject using the specified format.
public:
virtual void SetData(System::String ^ format, System::Object ^ data);
public virtual void SetData (string format, object data);
public virtual void SetData (string format, object? data);
abstract member SetData : string * obj -> unit
override this.SetData : string * obj -> unit
Public Overridable Sub SetData (format As String, data As Object)
Parameters
- format
- String
The format associated with the data. See DataFormats for predefined formats.
- data
- Object
The data to store.
Implements
Examples
The following code example stores data in a DataObject, specifying its format as Unicode.
Then the data is retrieved by specifying the text format, since the default is to convert the data when the final format is compatible. The result is displayed in a text box.
This code requires that textBox1
has been created.
private:
void AddMyData()
{
// Creates a new data object using a string and the text format.
DataObject^ myDataObject = gcnew DataObject;
// Stores a string, specifying the Unicode format.
myDataObject->SetData( DataFormats::UnicodeText, "Text string" );
// Retrieves the data by specifying Text.
textBox1->Text = myDataObject->GetData( DataFormats::Text )->GetType()->Name;
}
private void AddMyData() {
// Creates a new data object using a string and the text format.
DataObject myDataObject = new DataObject();
// Stores a string, specifying the Unicode format.
myDataObject.SetData(DataFormats.UnicodeText, "Text string");
// Retrieves the data by specifying Text.
textBox1.Text = myDataObject.GetData(DataFormats.Text).GetType().Name;
}
Private Sub AddMyData()
' Creates a new data object using a string and the text format.
Dim myDataObject As New DataObject()
' Stores a string, specifying the Unicode format.
myDataObject.SetData(DataFormats.UnicodeText, "Text string")
' Retrieves the data by specifying Text.
textBox1.Text = myDataObject.GetData(DataFormats.Text).GetType().Name
End Sub
Remarks
Important
Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see Validate All Inputs.
If you do not know the format of the target application, you can store data in multiple formats using this method.
Data stored using this method can be converted to a compatible format when it is retrieved.
See also
Applies to
SetData(Type, Object)
Adds the specified object to the DataObject using the specified type as the format.
public:
virtual void SetData(Type ^ format, System::Object ^ data);
public virtual void SetData (Type format, object data);
public virtual void SetData (Type format, object? data);
abstract member SetData : Type * obj -> unit
override this.SetData : Type * obj -> unit
Public Overridable Sub SetData (format As Type, data As Object)
Parameters
- data
- Object
The data to store.
Implements
Examples
The following code example stores data in a DataObject using a Type as the data format. The data is then retrieved by calling GetData using the Type to specify the data format. The result is displayed in a text box.
This code requires that textBox1
has been created.
private:
void AddMyData2()
{
// Creates a component to store in the data object.
Component^ myComponent = gcnew Component;
// Gets the type of the component.
Type^ myType = myComponent->GetType();
// Creates a new data object.
DataObject^ myDataObject = gcnew DataObject;
// Adds the component to the DataObject.
myDataObject->SetData( myType, myComponent );
// Prints whether data of the specified type is in the DataObject.
if ( myDataObject->GetDataPresent( myType ) )
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is present in the DataObject" );
}
else
{
textBox1->Text = String::Concat( "Data of type ", myType->Name,
" is not present in the DataObject" );
}
}
private void AddMyData2() {
// Creates a component to store in the data object.
Component myComponent = new Component();
// Gets the type of the component.
Type myType = myComponent.GetType();
// Creates a new data object.
DataObject myDataObject = new DataObject();
// Adds the component to the DataObject.
myDataObject.SetData(myType, myComponent);
// Prints whether data of the specified type is in the DataObject.
if(myDataObject.GetDataPresent(myType))
textBox1.Text = "Data of type " + myType.GetType().Name +
" is present in the DataObject";
else
textBox1.Text = "Data of type " + myType.GetType().Name +
" is not present in the DataObject";
}
Private Sub AddMyData2()
' Creates a component to store in the data object.
Dim myComponent As New Component()
' Gets the type of the component.
Dim myType As Type = myComponent.GetType()
' Creates a new data object.
Dim myDataObject As New DataObject()
' Adds the component to the DataObject.
myDataObject.SetData(myType, myComponent)
' Prints whether data of the specified type is in the DataObject.
If myDataObject.GetDataPresent(myType) Then
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is present in the DataObject"
Else
textBox1.Text = "Data of type " & myType.GetType().Name & _
" is not present in the DataObject"
End If
End Sub
Remarks
Important
Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see Validate All Inputs.
If you do not know the format of the target application, you can store data in multiple formats using this method.
Data stored using this method can be converted to a compatible format when it is retrieved.
See also
Applies to
SetData(String, Boolean, Object)
Adds the specified object to the DataObject using the specified format and indicating whether the data can be converted to another format.
public:
virtual void SetData(System::String ^ format, bool autoConvert, System::Object ^ data);
public virtual void SetData (string format, bool autoConvert, object data);
public virtual void SetData (string format, bool autoConvert, object? data);
abstract member SetData : string * bool * obj -> unit
override this.SetData : string * bool * obj -> unit
Public Overridable Sub SetData (format As String, autoConvert As Boolean, data As Object)
Parameters
- format
- String
The format associated with the data. See DataFormats for predefined formats.
- autoConvert
- Boolean
true
to allow the data to be converted to another format; otherwise, false
.
- data
- Object
The data to store.
Implements
Examples
The following code example stores data in a DataObject and specifies that the data can only be retrieved in its native format.
First, a new DataObject is created. Data in the Unicode format is stored in the DataObject, with autoConvert
set to false
.
Then, the DataObject is queried for the list of available data formats. Only the Unicode format is returned, although Unicode data can be converted to text and other formats.
This code requires that textBox1
has been created.
private:
void AddMyData4()
{
// Creates a new data object, and assigns it the component.
DataObject^ myDataObject = gcnew DataObject;
// Adds data to the DataObject, and specifies no format conversion.
myDataObject->SetData( DataFormats::UnicodeText, false, "My Unicode data" );
// Gets the data formats in the DataObject.
array<String^>^ arrayOfFormats = myDataObject->GetFormats();
// Prints the results.
textBox1->Text = "The format(s) associated with the data are: \n";
for ( int i = 0; i < arrayOfFormats->Length; i++ )
{
textBox1->Text = String::Concat( textBox1->Text, arrayOfFormats[ i ], "\n" );
}
}
private void AddMyData4() {
// Creates a new data object, and assigns it the component.
DataObject myDataObject = new DataObject();
// Adds data to the DataObject, and specifies no format conversion.
myDataObject.SetData(DataFormats.UnicodeText, false, "My Unicode data");
// Gets the data formats in the DataObject.
String[] arrayOfFormats = myDataObject.GetFormats();
// Prints the results.
textBox1.Text = "The format(s) associated with the data are: " + '\n';
for(int i=0; i<arrayOfFormats.Length; i++)
textBox1.Text += arrayOfFormats[i] + '\n';
}
Private Sub AddMyData4()
' Creates a new data object, and assigns it the component.
Dim myDataObject As New DataObject()
' Adds data to the DataObject, and specifies no format conversion.
myDataObject.SetData(DataFormats.UnicodeText, False, "My Unicode data")
' Gets the data formats in the DataObject.
Dim arrayOfFormats As String() = myDataObject.GetFormats()
' Prints the results.
textBox1.Text = "The format(s) associated with the data are: " & ControlChars.Cr
Dim i As Integer
For i = 0 To arrayOfFormats.Length - 1
textBox1.Text += arrayOfFormats(i) & ControlChars.Cr
Next i
End Sub
Remarks
Important
Calling this method with untrusted data is a security risk. Call this method only with trusted data. For more information, see Validate All Inputs.
If you do not know the format of the target application, you can store data in multiple formats using this method.