PlanetSquires Forums

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]

Author Topic: CWebCtx and timeout on navigate  (Read 2383 times)

Josť Roca

  • Moderator
  • Guru Member
  • *****
  • Posts: 3269
Re: CWebCtx and timeout on navigate
« Reply #15 on: October 29, 2018, 06:47:36 AM »

This meta tag

<meta http-equiv='MSThemeCompatible' content='Yes'>

makes the WebBrowser control to become themed if the application uses visual styles.

And there is also the DPI awareness question, but fortunately you don't have to bother about it because the CWebCtx class creates automatically a custom implementation of the IDocHostUIHandler interface, that is the only way to achieve it.

This class has an overridable method called GetHostInfo that by default sets the following flags: DOCHOSTUIFLAG_NO3DBORDER OR DOCHOSTUIFLAG_THEME OR DOCHOSTUIFLAG_DPI_AWARE

Code: [Select]
' =====================================================================================
' Gets the UI capabilities of the application that is hosting MSHTML.
'     MSHTML does not enable selection of the text in the form.
'     MSHTML does not add the Help menu item to the container's menu.
'     MSHTML does not use 3-D borders on any frames or framesets. To turn the border off
'     on only the outer frameset use DOCHOSTUIFLAG_NO3DOUTERBORDER
'     MSHTML does not have scroll bars.
'     MSHTML does not execute any script until fully activated. This flag is used to
'     postpone script execution until the host is active and, therefore, ready for script
'     to be executed.
'     MSHTML opens a site in a new window when a link is clicked rather than browse to
'     the new site using the same browser window.
'     Not implemented.
'     MSHTML uses flat scroll bars for any UI it displays.
'     MSHTML inserts the div tag if a return is entered in edit mode. Without this flag,
'     MSHTML will use the p tag.
'     MSHTML only becomes UI active if the mouse is clicked in the client area of the
'     window. It does not become UI active if the mouse is clicked on a non-client area,
'     such as a scroll bar.
'     MSHTML consults the host before retrieving a behavior from the URL specified on
'     the page. If the host does not support the behavior, MSHTML does not proceed to
'     query other hosts or instantiate the behavior itself, even for behaviors developed
'     in script (HTML Components (HTCs)).
'     Microsoft Internet Explorer 5 and later. Provides font selection compatibility
'     for Microsoft Outlook Express. If the flag is enabled, the displayed characters
'     are inspected to determine whether the current font supports the code page. If
'     disabled, the current font is used, even if it does not contain a glyph for the
'     character. This flag assumes that the user is using Internet Explorer 5 and
'     Outlook Express 4.0.
'     Internet Explorer 5 and later. Controls how nonnative URLs are transmitted over
'     the Internet. Nonnative refers to characters outside the multibyte encoding of
'     the URL. If this flag is set, the URL is not submitted to the server in UTF-8 encoding.
'     Internet Explorer 5 and later. Controls how nonnative URLs are transmitted over
'     the Internet. Nonnative refers to characters outside the multibyte encoding of
'     the URL. If this flag is set, the URL is submitted to the server in UTF-8 encoding.
'     Internet Explorer 5 and later. Enables the AutoComplete feature for forms in the
'     hosted browser. The Intelliforms feature is only turned on if the user has
'     previously enabled it. If the user has turned the AutoComplete feature off for
'     forms, it is off whether this flag is specified or not.
'     Internet Explorer 5 and later. Enables the host to specify that navigation should
'     happen in place. This means that applications hosting MSHTML directly can specify
'     that navigation happen in the application's window. For instance, if this flag is
'     set, you can click a link in HTML mail and navigate in the mail instead of opening
'     a new Windows Internet Explorer window.
'     Internet Explorer 5 and later. During initialization, the host can set this flag
'     to enable Input Method Editor (IME) reconversion, allowing computer users to employ
'     IME reconversion while browsing Web pages. An input method editor is a program that
'     allows users to enter complex characters and symbols, such as Japanese Kanji
'     characters, using a standard keyboard. For more information, see the International
'     Features reference in the Base Services section of the Windows Software Development
'     Kit (SDK).
'     Internet Explorer 6 and later. Specifies that the hosted browser should use themes
'     for pages it displays.
'     Internet Explorer 6 and later. Specifies that the hosted browser should not use
'     themes for pages it displays.
'     Internet Explorer 6 and later. Disables PICS ratings for the hosted browser.
'     Internet Explorer 6 and later. Turns off any 3-D border on the outermost frame or
'     frameset only. To turn borders off on all frame sets, use DOCHOSTUIFLAG_NO3DBORDER
'     Internet Explorer 6 and later. Disables the automatic correction of namespaces when
'     editing HTML elements.
'     Internet Explorer 6 and later. Prevents Web sites in the Internet zone from accessing
'     files in the Local Machine zone.
'     Internet Explorer 6 and later. Turns off untrusted protocols. Untrusted protocols
'     include ms-its, ms-itss, its, and mk:@msitstore.
'     Internet Explorer 7. Indicates that navigation is delegated to the host; otherwise,
'     MSHTML will perform navigation. This flag is used primarily for non-HTML document types.
'     Internet Explorer 7. Causes MSHTML to fire an additional DWebBrowserEvents2::BeforeNavigate2
'     event when redirect navigations occur. Applications hosting the WebBrowser Control
'     can choose to cancel or continue the redirect by returning an appropriate value in
'     the Cancel parameter of the event.
'     Internet Explorer 7. Causes MSHTML to use the Document Object Model (DOM) to create
'     native "windowless" select controls that can be visually layered under other elements.
'     Internet Explorer 7. Causes MSHTML to create standard Microsoft Win32 "windowed"
'     select and drop-down controls.
'     Internet Explorer 6 for Windows XP Service Pack 2 (SP2) and later. Requires user
'     activation for Microsoft ActiveX controls and Java Applets embedded within a web page.
'     This flag enables interactive control blocking, which provisionally disallows direct
'     interaction with ActiveX controls loaded by the APPLET, EMBED, or OBJECT elements.
'     When a control is inactive, it does not respond to user input; however, it can perform
'     operations that do not involve interaction.
'     Internet Explorer 8. Causes layout engine to calculate document pixels as 96 dots
'     per inch (dpi). Normally, a document pixel is the same size as a screen pixel. This
'     flag is equivalent to setting the FEATURE_96DPI_PIXEL feature control key on a
'     per-host basis.
' Remarks
'     The DOCHOSTUIFLAG_BROWSER flag, a supplementary defined constant (not technically
'     a part of this enumeration), combines the values of DOCHOSTUIFLAG_DISABLE_HELP_MENU
' =====================================================================================
   CWBX_DP("*** CDocHostUIHandler2.GetHostInfo pInfo = " & WSTR(pInfo))
   IF m_GetHostInfoProc THEN RETURN m_GetHostInfoProc(m_pWebCtx, pInfo)
   ' // Default behavior if the user does not processes this event...
   IF pInfo THEN
      pInfo->cbSize = SIZEOF(DOCHOSTUIINFO)
      pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT
      pInfo->pchHostCss = NULL
      pInfo->pchHostNS = NULL
' =====================================================================================

Paul Squires

  • Administrator
  • Guru Member
  • *****
  • Posts: 9287
  • Windows 10
    • PlanetSquires Software
Re: CWebCtx and timeout on navigate
« Reply #16 on: October 29, 2018, 08:49:56 AM »

Hi Josť, I guarantee you that if it wasn't for your involvement in FreeBASIC, then I suspect that I would have migrated to a different programming language long ago. I had flirted with C++ and C#, but once you built WinFBX the decision to stay in the BASIC sphere was an easy one. The amount of tools that your WinFBX library gives us makes FB programming a breeze.

On my longer term radar is cross platform programming. I retire within 5 years so by then I want to be able to write commercial grade applications that will run across all platforms. Not ready to go down that path yet because technology will change so much by then but I'll start at it in a couple/three years from now. Tech like Electron or .Net Core certainly looks promising based on today's tools.
Paul Squires
PlanetSquires Software
WinFBE Editor and Visual Designer
Pages: 1 [2]