Home mail me! Syndicate this site using RSS

Archive for TAG: MFC

解决IE中IFRAME无法保留SESSION的问题

最近用C++开发一个基于WebBrowser的Application,界面都是在一个IFRAME里展示,由于需要会员登录模块,结果却出现在IFRAME里无法保留SESSION的问题,上MICROSOFT官方找到了答案:

@header(‘P3P: CP=”CAO PSA OUR”‘);

一句代码搞定!

P3P是微软的隐私策略,通常情况下跨域IFRAME或者FRAMESET默认采用的隐私策略为“中”,该级别的策略拒绝保留SESSION。CAO PSA OUR则意味着你同意跨域保留SESSION。

详细资料可以查看官方文档:http://support.microsoft.com/kb/323752

No Comments »

去掉CWebBorwser2控件的滚动条

重载XDocHostUIHandler::GetHostInfo方法即可

相关代码如下:

HRESULT FAR EXPORT CMyControlSite::XDocHostUIHandler::GetHostInfo(DOCHOSTUIINFO* pInfo)
{
    METHOD_PROLOGUE(CMyControlSite, DocHostUIHandler)
    //pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER;
    pInfo->dwFlags = DOCHOSTUIFLAG_DIALOG;		// 禁止选择
    pInfo->dwFlags |= DOCHOSTUIFLAG_SCROLL_NO;	// 去掉滚动条
    pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
    return S_OK;
}

该方法中,可延伸的内容也非常,比如设置默认的CSS,设置浏览器默认的属性等。
DOCHOSTUIFLAG_DIALOG = 0×00000001,
DOCHOSTUIFLAG_DISABLE_HELP_MENU = 0×00000002,
DOCHOSTUIFLAG_NO3DBORDER = 0×00000004,
DOCHOSTUIFLAG_SCROLL_NO = 0×00000008,
DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 0×00000010,
DOCHOSTUIFLAG_OPENNEWWIN = 0×00000020,
DOCHOSTUIFLAG_DISABLE_OFFSCREEN = 0×00000040,
DOCHOSTUIFLAG_FLAT_SCROLLBAR = 0×00000080,
DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = 0×00000100,
DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 0×00000200,
DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = 0×00000400,
DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = 0×00000800,
DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = 0×00001000,
DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = 0×00002000,
DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = 0×00004000,
DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = 0×00010000,
DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = 0×00020000,
DOCHOSTUIFLAG_THEME = 0×00040000,
DOCHOSTUIFLAG_NOTHEME = 0×00080000,
DOCHOSTUIFLAG_NOPICS = 0×00100000,
DOCHOSTUIFLAG_NO3DOUTERBORDER = 0×00200000

No Comments »