| STLPort-5.1.2-VS8-ARMV4I.tgz (~11MB) |
stlport.5.1.dll stlport.5.1.exp stlport.5.1.lib stlport.5.1.pdb stlport_static.5.1.lib stlport_static.5.1.pdb stlportd.5.1.dll stlportd.5.1.exp stlportd.5.1.lib stlportd.5.1.pdb stlportd_static.5.1.lib stlportd_static.5.1.pdb stlportstld.5.1.dll stlportstld.5.1.exp stlportstld.5.1.lib stlportstld.5.1.pdb stlportstld_static.5.1.lib stlportstld_static.5.1.pdb |
| STLPort-5.1.2-VS8-ARMV4I-noPDB.tgz (~8.5MB) |
stlport.5.1.dll stlport.5.1.exp stlport.5.1.lib stlport_static.5.1.lib stlportd.5.1.dll stlportd.5.1.exp stlportd.5.1.lib stlportd_static.5.1.lib stlportstld.5.1.dll stlportstld.5.1.exp stlportstld.5.1.lib stlportstld_static.5.1.lib |
| STLPort-5.1.2-VS8-ARMV4I-Release.tgz (~3.2MB) |
stlport.5.1.dll stlport.5.1.lib stlport.5.1.pdb stlport_static.5.1.lib stlport_static.5.1.pdb |
| STLPort-5.1.2-VS8-ARMV4I-Debug.tgz (~4.5MB) |
stlportstld.5.1.dll stlportstld.5.1.exp stlportstld.5.1.lib stlportstld.5.1.pdb stlportstld_static.5.1.lib stlportstld_static.5.1.pdb |
The DMProcessConfigXML function can be used on Windows CE 5 device to easily access configuration management subsystems.
As usual the documentation is not optimal and lacks real life examples. Here I'll detail how to setup a Wi-Fi connection programmatically in C++. This newly created connection will appear among all other connections created from the control panel. This method may be used (with other configuration service providers) to backup a PocketPC configuration.
A few things to keep in mind anytime:
DMProcessConfigXML syscall and its prototype are defined in cfgmgrapi.h header.connmgr.h header.
Now the real meat: this XML will add or overwrite a Wi-Fi access point connection with SSID COWO, no encryption, open authentication. This connection is regarded as an internet connection.
LPCWSTR in = \
L"<wap-provisioningdoc>"
L" <characteristic type=\"Wi-Fi\"> "
L" <characteristic type=\"access-point\"> "
L" <characteristic type=\"COWO\"> "
L" <parm name=\"DestId\" value=\"{436EF144-B4FB-4863-A041-8F905A62C572}\"/>"
L" <parm name=\"AdHoc\" value=\"0\"/>"
L" <parm name=\"Authentication\" value=\"0\"/>"
L" <parm name=\"Encryption\" value=\"1\"/>"
L" <parm name=\"KeyProvided\" value=\"0\"/>"
L" <parm name=\"NetworkKey\" value=\"\"/>"
L" <parm name=\"KeyIndex\" value=\"1\"/>"
L" <parm name=\"Use8021x\" value=\"0\"/>"
L" <parm name=\"EAPType\" value=\"25\"/>"
L" </characteristic>"
L" </characteristic>"
L" </characteristic>"
L"</wap-provisioningdoc>";
LPWSTR out = NULL;
HRESULT res = ::DMProcessConfigXML(in, CFGFLAG_PROCESS, &out);
delete[] out;
out will contain a copy of the configuration just inserted, and return value should be S_OK.
Query works in the same way. There are some M$ examples about recursive query of all WiFi connections. Here's an example on how to query a specific connection.
L"<wap-provisioningdoc>"
L" <characteristic type=\"Wi-Fi\"> "
L" <characteristic type=\"access-point\"> "
L" <characteristic-query type=\"COWO\" /> "
L" </characteristic>"
L" </characteristic>"
L"</wap-provisioningdoc>";
LPWSTR out = NULL;
HRESULT res = ::DMProcessConfigXML(in, CFGFLAG_PROCESS, &out);
delete[] out;
You may need to use GetSystemMetrics to query cursor width and height, as described in the documentation. Unfortunately, there are definitions missing in winuser.h, so you have to add them by hand:
#ifndef SM_CXCURSOR
#define SM_CXCURSOR 13
#endif
#ifndef SM_CYCURSOR
#define SM_CYCURSOR 14
#endif
2006-2008 Giuseppe 'Cowo' Corbelli | Cowo's homepage | Cowo's photo page | Contact me | Back to top
Design by Andreas Viklund | Serendipity Template by Carl