Windows Mobile,DMProcessConfigXML 使用实例
Mobile, 实例, Windows
最近遇到了创建连接点的问题(飞信就能自己创建来着),到网上搜罗了一下解决方法。这里总结一下:
这些方法主要是针对函数DMProcessConfigXML里面的第一个参数来的,函数的具体使用方法参见MSDN。
MSDN没有对第一个参数做太多解释,下面提供一些使用实例:
创建cmnet连接
LPCWSTR strFavoriteXml =
L"<wap-provisioningdoc>"
L"<characteristic type=/"CM_GPRSEntries/">"
L"<characteristic type=/"Internet Connect/">"
L"<parm name=/"DestId/" value=/"{436EF144-B4FB-4863-A041-8F905A62C572}/" />"
L"<characteristic type=/"DevSpecificCellular/">"
L"<parm name=/"GPRSInfoAccessPointName/" value=/"cmnet/" />"
L"</characteristic>"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>"; //DestID是自己定义的GUID,当然,也有已经定义好的GUID可以直接用
LPWSTR pszwXMLout = NULL;
HRESULT hr = DMProcessConfigXML(strFavoriteXml, CFGFLAG_PROCESS, &pszwXMLout);
if ( pszwXMLout )
{
delete [] pszwXMLout;
pszwXMLout = NULL;
}
创建cmwap连接
CString strFavoriteXml =
L"<wap-provisioningdoc>"
L"<characteristic type=/"CM_Networks/">"
L"<characteristic type=/"Test_GPRS/">"
L"<parm name=/"DestId/" value=/"{D1D06580-C364-55ec-9421-6ACF34129C58}/" />"
L"</characteristic>"
L"</characteristic>"
L"<characteristic type=/"CM_GPRSEntries/">"
L"<characteristic type=/"Test_GPRS/">"
L"<parm name=/"DestId/" value=/"{D1D06580-C364-55ec-9421-6ACF34129C58}/" />"
L"<characteristic type=/"DevSpecificCellular/">"
L"<parm name=/"BearerInfoValid/" value=/"1/" />"
L"<parm name=/"GPRSInfoValid/" value=/"1/" />"
L"<parm name=/"GPRSInfoProtocolType/" value=/"2/" />"
L"<parm name=/"GPRSInfoL2ProtocolType/" value=/"PPP/" />"
L"<parm name=/"GPRSInfoAccessPointName/" value=/"cmwap/" />"
L"<parm name=/"GPRSInfoAddress/" value=/"/" />"
L"<parm name=/"GPRSInfoDataCompression/" value=/"1/" />"
L"<parm name=/"GPRSInfoHeaderCompression/" value=/"1/" />"
L"<parm name=/"GPRSInfoParameters/" value=/"/" />"
L"</characteristic>"
L"</characteristic>"
L"</characteristic>"
L"<characteristic type=/"CM_ProxyEntries/">"
L"<characteristic type=/"WAP/">"
L"<parm name=/"SrcId/" value=/"{D1D06580-C364-55ec-9421-6ACF34129C58}/" />"
L"<parm name=/"DestId/" value=/"{436EF144-B4FB-4863-A041-8F905A62C572}/" />"
L"<parm name=/"Proxy/" value=/"10.0.0.172:80/" />"
L"<parm name=/"Enable/" value=/"1/" />"
L"<parm name=/"Type/" value=/"1/" />"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>";
LPWSTR pszwXMLout = NULL;
HRESULT hr = DMProcessConfigXML(strFavoriteXml, CFGFLAG_PROCESS, &pszwXMLout);
if ( pszwXMLout )
{
delete [] pszwXMLout;
pszwXMLout = NULL;
}
获取某个连接的接入点
LPCTSTR szFormat =
L"<wap-provisioningdoc>"
L"<characteristic type=/"CM_GPRSEntries/">"
L"<characteristic type=/"%s/">"
L"<characteristic type=/"DevSpecificCellular/">"
L"<parm-query name=/"GPRSInfoAccessPointName/"/>"
L"</characteristic>"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>";
//%s为 "移动梦网(GPRS)" "GPRS连接互联网" 等,
//可以用ConnMgrQueryDetailedStatus枚举,CONNMGR_CONNECTION_DETAILED_STATUS的szDescription
卸载应用程序
LPCTSTR szFormat =
L"<wap-provisioningdoc>"
L"<characteristic type="UnInstall">"
L"<characteristic type="[AppName]">"
L"<parm name="uninstall" value="1"/>"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>"
//[AppName] = 注册表中对应的该软件的名称 一般是:生成cab包使用的inf中的provider和appname的组合
//如:provider = aaa appname = bbb <characteristic type="aaa bbb"> 然后用DMProcessConfigXML来处理
关闭硬件按钮声音
LPCTSTR szFormat =
L"<wap-provisioningdoc>"
L"<characteristic type="Sounds">"
L"<characteristic type="ControlPanel/Sounds/KeyPress">"
L"<parm name="Mode" value="1"/> <!-- 0=none, 1=tone, 2=click -->"
L"</characteristic>"
L"</characteristic>"
L"</wap-provisioningdoc>"
//使用DMProcessConfigXML()函数通过配置管理器发送上面的XML配置数据。