KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q301359: INFO: Cannot Use WebBrowser Control Directly in eVB

Article: Q301359
Product(s): Microsoft Visual Basic for Windows
Version(s): 3.0
Operating System(s): 
Keyword(s): kbActiveX kbCtrl kbInternet kbOSWinCEsearch kbGrpDSVB kbDSupport kbVBM300
Last Modified: 17-AUG-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft eMbedded Visual Basic, version 3.0 
-------------------------------------------------------------------------------

SUMMARY
=======

Currently, you cannot use the WebBrowser control directly in eMbedded Visual
Basic (eVB) 3.0.

MORE INFORMATION
================

There are several reasons why you cannot use the WebBrowser control directly in
eMbedded Visual Basic (eVB) 3.0:

- You cannot use the Pocket Internet Explorer browser component as an ActiveX
  control in eMbedded Visual Basic nor can you use Declare statements to access
  functions in the component to call the Pocket Internet Explorer browser
  component. This browser is essentially a dynamic-link library (DLL) that
  interprets HTML. The Pocket Internet Explorer browser component does not have
  any interfaces that allow it to be used from eVB and does not have
  functionality similar to the desktop WebBrowser control.

- You can only use the Internet Explorer for Windows CE WebBrowser component on
  operating systems that are built with Platform Builder 3.0. In addition, the
  Internet Explorer for Windows CE WebBrowser component only ships with
  Platform Builder 3.0. Thus, you cannot use the Internet Explorer for Windows
  CE WebBrowser ActiveX control/DLL on the Pocket PC version of Windows CE.
  Even if you could use the Internet Explorer for Windows CE WebBrowser ActiveX
  control/DLL from eVB, you could not use the control (or the application) on
  the Pocket PC.

  NOTE: HPC 2000 uses Internet Explorer for Windows CE, and the WebBrowser
  component is available on that operating system. However, you cannot use the
  control/DLL from eVB.

- There is no desktop version of Internet Explorer for Windows CE WebBrowser
  component that can be used in the eVB design environment. In Windows CE,
  there is a binary version of each ActiveX control/DLL for each supported
  processor type. Thus, the ActiveX control/DLL "MyControl" would have a binary
  version for an SH4 processor, a MIPS 4000 processor, and so on.

  In addition, if the ActiveX control/DLL is to appear in the eVB design
  environment, it requires a version of the ActiveX control that is compiled
  specifically for the desktop Windows operating system. This version is used
  to allow developers to place the control on a form, resize it, and so on. If
  the ActiveX control/DLL does not have this desktop version, it must be used
  as an object at run time through the CreateObject function, or you must write
  a discrete container application because there is no desktop version of the
  control to insert into the project.

- There are at least two reasons why you cannot use the Internet Explorer for
  Windows CE WebBrowser control directly in eVB. First, and most importantly,
  there is a documented limitation of the CreateObject function. You cannot use
  CreateObject to create visible ActiveX controls (for example, graphical
  controls such as the PictureBox, ListView, or Grid control) at run time. This
  limitation extends to the CreateObjectWithEvents function.

  The second reason is also a limitation of these two functions. Both
  CreateObject and CreateObjectWithEvents require the ProgID parameter.
  However, a ProgID for the WebBrowser control does not occur in the registry,
  only a ClassID. There is no other way to access the WebBrowser control
  directly from eMbedded Visual Basic.

The WebBrowser control does, however, implement the IDispatch interface. If you
use the IESAMPLE eMbedded Visual C++ source code (which is located at
\WINCE300\Public\IE\Oak\IESample\Mainwnd.cpp) as a starting point, you can
create an ActiveX control that you can use in eVB. To create the desktop
design-time version of the control, which is really a dummy control, you must
implement only a few design-time properties such as Top, Left, Width, and Height
to position the control on a form. For more information about how to create an
ActiveX control that you can use in eVB, see the following Microsoft white
paper:

  Building ActiveX Controls for Microsoft Windows CE Using the Active Template
  Library
  http://msdn.microsoft.com/library/techart/atlce.htm

REFERENCES
==========

For more information on how to create ActiveX controls for the Internet Explorer
on Pocket PC, see the following Microsoft Web site:

  http://www.microsoft.com/mobile/developer/technicalarticles/atl_pie.asp


Additional query words: PIE

======================================================================
Keywords          : kbActiveX kbCtrl kbInternet kbOSWinCEsearch kbGrpDSVB kbDSupport kbVBM300 
Technology        : kbVBSearch kbAudDeveloper kbZNotKeyword2 kbVBeMbSearch kbVBeMb300
Version           : :3.0
Hardware          : WinCE
Issue type        : kbinfo
Solution Type     : kbnofix

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.