Share via


PFN_TYPE_CONVERTER (Windows Embedded CE 6.0)

1/6/2010

This callback function is defined by the application. When an application calls IXRCustomUserControlBase::SetPropertyValueSilverlight for Windows Embedded calls this function in case a XAML type must be converted into a C++ type. The PFN_TYPE_CONVERTER type defines a pointer to this callback function.

Syntax

typedef HRESULT (CALLBACK* PFN_TYPE_CONVERTER)(
    XRValue *pValIn, 
    XRValue *pValOut
);

Parameters

  • pValIn
    [in] Points to an XRValue object that indicates the type value, in case this value must be converted from a XAML type to another type in C++.

    When Silverlight calls this function in the parsing phase, pValIn will always be a string, but when Silverlight calls it from SetPropertyValue, pValIn can be any VALUE_TYPE enumerated type that a custom function passed to SetPropertyValue.

  • pValOut
    [out] Points to an XRValue object that contains the correct type and value for a specific property that the source XAML defined.

    The type indicated in XRValue must specify one of the types available in the VALUE_TYPE enumeration.

    String values must be of type VTYPE_BSTR and be allocated with SysAllocString.

Return Value

Returns an HRESULT that indicates success or failure.

Remarks

This function pointer specifies a type converter for a dependency property and is a member of the XRDependencyPropertyMetaData structure. When you specify this function pointer in XRDependencyPropertyMetaData, Silverlight calls your custom function to convert the property to the correct object type and value. You must implement the custom function with a function signature that matches the function signature shown in the syntax section.

Example

The following code example shows an example implementation of this callback function.

Important

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 XamlRuntime.h>

static HRESULT ConvertNameTypeConverter(XRValue *pValIn, XRValue *pValOut)
    {
        WCHAR NewString[MAX_PATH] = L"";
        StringCchPrintf(NewString, MAX_PATH, L"New%s", pValIn->pReadOnlyStringVal);

        pValOut->vType = VTYPE_BSTR;
        pValOut->bstrStringVal = SysAllocString(NewString);

        return S_OK;
    };      

.NET Framework Equivalent

None.

Requirements

Header XamlRuntime.h
sysgen SYSGEN_XAML_RUNTIME
Windows Embedded CE Windows Embedded CE 6.0 R3

See Also

Reference

Silverlight for Windows Embedded Functions