TPropertyBag.SetValue(const WCHAR *,XRValue *) (Compact 2013)

3/28/2014

This method sets a new value for a data source property in the property bag.

Syntax

HRESULT STDMETHODCALLTYPE SetValue(
const WCHAR * PropertyName,
XRValue * pValue)

Parameters

  • PropertyName
    [in] Name of the property.
  • pValue
    [in] Pointer to an XRValue object that contains the new value for the property.

Return Value

The following table shows the possible return values.

Value

Description

S_OK

The method was successful.

E_FAIL

The method was unable to find an iXRPropertyBinding object in m_PropertiesMap by using the property name in the PropertyName parameter.

E_POINTER

The pValue parameter is not valid.

Remarks

To support dynamic data in a data source object, call the SetValue method to update values of properties in the property bag for the object.

You can bind property data to a UI element either by calling IXRFrameworkElement::SetBinding or by using a Binding Markup Extension in Microsoft Silverlight 3 XAML.

Example

The following code example uses the SetValue method to update the BSTR value of the Name property of a data source object represented by the m_DataObject variable, by using a text string of type LPWSTR.

Warning

For readability, the following code example does not contain security checking or error handling. Do not use the following code in a production environment.

#include "stdafx.h"
#include "XRPropertyBag"
#include "XamlRuntime.h"

XRPtr<EmailMessageDataClass> m_DataObject; 

void UpdateStringData()
{
     XRAutoCriticalSection csObject;
     
     // Define new data; for example, the value of the PR_SENDER_NAME property from CEMAPI.
     LPWSTR EmailSenderName = TEXT("Sanjay Patel");
     
     // Define a critical section object. 
      EnterCriticalSection(&csObject);    
      
     // Allocate and set a new BSTR for the email sender name.
     XRValue updatedxrvalue;
     updatedxrvalue.bstrStringVal = SysAllocString(EmailSenderName);
     updatedxrvalue.vType = VTYPE_BSTR;
               
     // Update the property value.
     m_DataObject->SetValue(L"Name", &updatedxrvalue);     
    
     // Release the critical section object.        
      LeaveCriticalSection(&csObject);

}

Requirements

Header

XRPropertyBag.h

See Also

Reference

TPropertyBag<Derived>
TPropertyBag.GetValue(const WCHAR *,XRValue *)