DOCUMENT:Q187532 16-NOV-2001 [vbwin] TITLE :HOWTO: Use the Remote Tools Installed with VBCE PRODUCT :Microsoft Visual Basic for Windows PROD/VER:: OPER/SYS: KEYWORDS:kbToolkit kbVBp500 kbVBp600 kbOSWinCE100 kbGrpDSVB ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Windows CE Toolkit for Visual Basic 6.0 ------------------------------------------------------------------------------- SUMMARY ======= The Windows CE Toolkit for Visual Basic 6.0 (VBCE) provides a number of tools that help developers work with a connected Windows CE device. These tools include: - Control Manager - Heap Walker - Process Viewer - Spy - Registry Editor - Zoom The Windows CE Platform SDK's also contains these tools. This article briefly describes how to use these tools. Most of them require a connected device. The Control Manager, Registry Editor, and OS Viewer can work with both the Emulator and the Remote Device. MORE INFORMATION ================ Control Manager --------------- The Control Manager is used to install/uninstall ActiveX controls in both the Emulator and the Remote Device. Before a VBCE application can use an ActiveX control, that control must be registered. The Control Manager automates this process. See the REFERENCES section of this article for more information. To install a control: 1. On the Windows CE menu in Visual Basic, click Control Manager. 2. From the list of available controls, select the control you wish to install. 3. On the Control menu, click Install to Target to install the control. Heap Walker ----------- Heap Walker enables you to view detailed information about heap IDs and flags for processes that are running on the Remote Device. It is a useful tool for detecting memory leaks. It allows you to view the blocks of memory used by a program in three views: - Process List - Heap List - Memory Dump When Heap Walker is started, the following columns of information are displayed in the Process List: - Heap ID - used by Heap Walker to uniquely identify heaps. - Process - the ID number of the process. - Process ID - the descriptive name of the process. - Flag - the name of the flag associated with a specific heap. Each process has one default heap, indicated by HF32_DEFAULT Double-clicking on a Heap ID in the Process List window will show the Heap List window for that Heap: - Address - the address of the start of the heap block. - BlockSize - the size, in bytes, of the heap block. - Flags - Free means the memory block is not used. Fixed means the memory block has a fixed (unmovable) location. Double-clicking on a memory address bring up a Memory Dump window. Each row of a memory dump represents up to 16 bytes of data: - Address - the memory address of the heap. - Hex - the hex values for the 16 bytes of memory at that address. - ASCII - the ANSI representation of the values shown in hex. The name of the client program for Heap Walker is CEHWCLI.EXE. Process Viewer -------------- Process Viewer provides three views, but all in one window: - Processes - Threads - Modules The Process List shows the following information: - Process - shows the process name. - PID - shows the process ID. - Base Priority - the base priority of threads created by the process. - # Threads - number of threads started by the process. - Base Addr - the load address of the EXE. - Access Key - A bit array that allows permission to see that address space. - Window - the caption of the main windows associated with that process. Select a process to view the threads associated with it. The Thread List shows the following information: - Thread ID - the ID of the thread. - Current PID - the ID of the process where the thread is executing. - Thread Priority - the priority of the thread. - Access Key - a bit array defining all the processes it can see. The Module List shows the information about the modules associated with the selected process: - Module - the name of the module. - Module ID - the ID of the module. - Proc Count - usage count in the context of the selected process. - Global Count - total usage count for all processes. - Base Addr - base address. - Base Size - size of the module in bytes. - hModule - handle to the module. - Full Path - path and name of the module. The name of the client program for Process Viewer is CEPWCLI.EXE. A running process can be stopped by selecting the process and clicking the red "X" on the Process Viewer toolbar. Process viewer is useful for seeing what .dll files are used by a program or whether any instances of PVB.EXE are running without visible windows. Spy --- Spy is used to watch Window messages being passed to the forms and controls in VBCE programs. When Spy is started, a list of Windows is retrieved from the device. To see the messages for a particular Window, select the Window in the Windows List and press the Messages button on the Spy toolbar or choose Messages from Spy's File menu. This will open the Messages window. The name of the client program for Spy is CESPYCLI.EXE. Spy can assist in debugging by providing an overall view of the Windows messages being sent. Registry Editor --------------- The Windows CE Registry Editor functions much like REGEDIT on the desktop. The registry can be viewed and changed in the emulator or in the remote device. Zoom ---- Windows CE Zoom downloads a bitmap of the H/PC screen. You can save the bitmap, copy it to the clipboard, or zoom in or out to view it differently. Multiple bitmaps can be opened at the same time. The name of the client program for Zoom is CEZCLI.EXE. Zoom can help communicate design decisions, development problems, or other information to non-H/PC users. REFERENCES ========== Windows CE Toolkit Help for Visual Basic 6.0 Tool Help Library under Windows SDK Base Services - General Library Windows CE Programmer's Guide: HEAPENTRY32, HEAPLIST32, PROCESSENTRY32, THREADENTRY32, MODULEENTRY32 Windows CE Platform SDK Additional query words: wce vbce vbce6 ====================================================================== Keywords : kbToolkit kbVBp500 kbVBp600 kbOSWinCE100 kbGrpDSVB Technology : kbVBSearch kbAudDeveloper kbWinCETKVBSearch kbWinCESearch Version : : Issue type : kbhowto ============================================================================= 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 2001.