DMProcessConfigXML
4/8/2010
DMProcessConfigXML is a Device Configuration API function that grants local access to the configuration management functionality of the mobile device. Application developers can use this to configure device settings. This function enables the submission of Open Mobile Alliance (OMA) Client Provisioning Extensible Markup Language (XML) information to change the settings of a mobile device.
Note
DMProcessConfigXML accepts only OMA Client Provisioning XML. It does not accept OMA Device Management (DM) SyncML XML.
Syntax
HRESULT DMProcessConfigXML(
LPCWSTR pszWXMLin,
DWORD dwFlags,
LPWSTR* ppszwXMLout
);
Parameters
- pszWXMLin
[in] The input XML buffer containing the configuration data. The parameter holds the XML that will be used to configure the device.
dwFlags
[in] Specifies an action flag. The following table shows the possible values.Option Value Description CFGFLAG_PROCESS
0x0001
The configuration management service and the Configuration Service Providers process the input data from the configuration XML file. Changes are applied.
CFGFLAG_METADATA
0x0002
The configuration management service gathers and returns metadata for any XML parameter elements it encounters. No changes are processed.
- ppszwXMLout
[out] Pointer to the output XML buffer. For more information, see Remarks.
Return Value
Returns the standard HRESULT value S_OK to indicate success. The following table shows the additional error codes that may be returned.
Value | Description |
---|---|
CONFIG_E_OBJECTBUSY |
Another instance of the configuration management service is currently running. |
CONFIG_E_CANCELTIMEOUT |
Waiting for the session to be timed out. |
CONFIG_E_ENTRYNOTFOUND |
No metabase entry was found. |
CONFIG_E_CSPEXCEPTION |
An exception occurred in one of the Configuration Service Providers. |
CONFIG_E_TRANSACTIONINGFAILURE |
A configuration management service failed to roll back properly. The affected settings might be in an unknown state. |
CONFIG_E_BAD_XML |
The XML input is invalid or malformed. |
Remarks
You can call DMProcessConfigXML from within the setup DLL file of a .cab file.
The caller of DMProcessConfigXML is responsible for cleanup of the output buffer that the ppszwXMLout parameter references. Memory is allocated in the implementation by means of the new [] operator. Thus the caller must use the delete [] <varname> statement to free the output buffer.
Note
If DMProcessConfigXML retrieves a document, the caller should parse the document for errors.
The Configuration Manager component is transactional and must process only one configuration request at a time to prevent collisions. Therefore, the DMProcessConfigXML function processes only one XML configuration request at a time.
Code Example
The following code example demonstrates how to use DMProcessConfigXML.
Note
To make the following code example easier to read, security checking and error handling are not included. This code example should not be used in a release configuration unless it has been modified to include them.
// WAP provisioning XML to add a new browser favorite.
LPCWSTR g_wszFavoriteXml =
L"<wap-provisioningdoc>"
L"<characteristic type=\"BrowserFavorite\">"
L"<characteristic type=\"Baldwin Museum of Science\">"
L"<parm name=\"URL\" value=\"https://www.baldwinmuseumofscience.com\"/>"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>";
// Use configuration XML to add a new browser favorite to the device.
HRESULT AddFavorite()
{
HRESULT hr = E_FAIL;
LPWSTR wszOutput = NULL;
// Process the XML.
hr = DMProcessConfigXML(g_wszFavoriteXml, CFGFLAG_PROCESS, &wszOutput);
// The caller must delete the XML returned from DMProcessConfigXML.
delete [] wszOutput;
return hr;
}
Requirements
Header | cfgmgrapi.h |
Library | aygshell.lib |
Windows Mobile | Pocket PC for Windows Mobile 2003 Second Edition and later, Smart Phone for Windows Mobile 2003 Second Edition and later |
See Also
Tasks
Adding XML by Using DMProcessConfigXML
Concepts
Configuration Service Providers
Other Resources
Device Management Functions
Managing Windows Mobile Devices
Provisioning Concepts