Window mobile 经常被忽略的知识点
2010-08-22 13:10:00 来源:WEB开发网IMSI:国际移动用户识别码(International Mobile Subscriber Identity),在GSM系统中,给每个移动用户分配一个唯一的国际用户识别码IMSI,此码在网中所有位置包括漫游区都是有效的。
手机号码一般不是存放在sim卡中的,而是存放在运营商的数据库里。一些手机平台开放了获取手机号码的接口;但目前多数运营商出于隐私和安全性考虑,屏蔽了该类接口。
具体代码略,网上可查。
一般说来,注册表项HKEY_LOCAL_MACHINEIdent下Name项值就是手机型号;手机型号也可能包含在UA串中,使用下面的函数来获取UA串:
HRESULT ObtainUserAgentString(
DWORD dwOption,
LPCSTR pcszUAOut,
DWORD* cbSize
);
该函数读出来的值存放在注册表HKEY_LOCAL_MACHINE SecurityInternet ExplorerUser Agent下CustomBase项中。
13 GetSystemTime取得的是格林威治时间,GetLocalTime取得的是当前时区时间。
14 窗口自适应输入法
PPC中,输入法显示时,界面可供用户操作的空间变小。如何使得界面能自适应输入法状态呢?
SIPINFO si = {0};
si.cbSize = sizeof(si);
SHSipInfo(SPI_GETSIPINFO, 0, &si, 0);
BOOL bShow = si.fdwFlags&SIPF_ON;
此时,bShow为真则表示输入法处于显示状态,否则是隐藏。
SIPINFO是这样定义的:
typedef struct tagSIPINFO
{
DWORD cbSize;
DWORD fdwFlags;
RECT rcVisibleDesktop;
RECT rcSipRect;
DWORD dwImDataSize;
void *pvImData;
} SIPINFO;
由rcVisibleDesktop和rcSipRect可以算出我们需要的界面大小。
响应WM_SETTINGCHANGE消息,通过SHSipInfo函数去得到输入法面板参数和桌面可视区域参数,然后配置窗口。
以上大多整理自网上
sylar 2010.2.1 cug@live.cn
赞助商链接