Bridges > COM Export Bridge > Examples > COM IDLgrWindow Based Histogram Plot Generator

# COM IDLgrWindow Based Histogram Plot Generator

This drawable object example inherits from IDLgrWindow and creates a histogram plot for a selected monochrome or RGB image file. While this example does contain several custom methods including those for opening a file, creating the plots, and changing plot characteristics, it does not use keyboard or mouse events. See COM IDLitWindow Surface Manipulation for such an example.

## Example Code

The object definition file, `export_grwindow_doc define.pro` is located in the `examples/doc/bridges` subdirectory of the IDL distribution. Run the example procedure by entering `export_grwindow_doc__define` at the IDL command prompt or view the file in an IDL Editor window by entering:

.EDIT export_grwindow_doc define.pro

Complete the following steps to duplicate this example.

1. In an IDL Editor window, open the object definition file by entering the following at the command prompt:

   .EDIT export_grwindow_doc define.pro

   It is a good idea to test the functionality of an object before exporting it. After compiling the file, enter the following lines at the command line and make sure the output is what is expected for this object.
   `oPlotWindow = OBJ_NEW("export_grwindow_doc")`
   `oPlotWindow->CHANGELINE, 2`
   This will display a three channel histogram plot and change the plot linestyle to dashed.

2. Open the Export Bridge Assistant by entering IDLEXBR_ASSISTANT at the command line.
3. Select to create a COM export object by selecting File > New Project > COM and browse to select `export_grwindow_doc define.pro`. Click Open to load the file into the Export Assistant.

Export Bridge Assistant details are available in Specifying Information for Exporting. Refer to that section if you need more information about the following items.

4. Set export object characteristics as described in the following table. When you select the tree view item listed in the left column, configure the related properties as noted in the right column.

Set the Export parameter to True for all items in this list unless otherwise noted.

Tip: You can select multiple items in the tree view and set properties for the group.

Tree View Item | Property Configuration
--- | ---
IDL Export Bridge Project | Accept the default value or make changes as desired: Output classname Process name Output directory
export_grwindow_doc | Drawable object equals True
OMODEL, OVIEW, OXAXIS, OXTEXT, OYAXIS, OYTEXT property | Type — IUnknown* Array — False
OPLOTCOLL property | Type — IUnknown* Array — True
SFILE property | Type — BSTR Array — False
CHANGELINE method | Enter different name if desired and mark Export as True
STYLE argument | Mutability — In Type — Short Array — False
CREATEPLOTS method | Enter different name if desired and mark Export as True
IMAGE, VROWS, VCOLS argument | Mutability — In Type — Variant Array — True Convert majority — False
VRGB argument | Mutability — In Type — short Array — False
OPEN method | Enter different name if desired and mark Export as True
SFILE argument | Mutability — In Type — BSTR Array — False Note: You can choose not to export this parameter. If so, the method follows the path for cases where no argument is defined. (You will need to modify the Visual Basic code to read `Me.Axexport_grwindow_doc1.OPEN()` instead of passing an argument.) If you do choose to export this method, the argument must either be a null string or a full file path.

5. Save the project by selecting File > Save project. Accept the default name and location or make changes as desired.
6. Verify that the object elements you want to export are listed in the Export log panel. If the expected items are not present, one or more items may still have an UNSPECIFIED field value that must be changed.
7. Build the export object by selecting Build > Build object. The Build log panel shows the results of the build process. For a drawable object, `.tlb` and `.ocx` files (named based on the object name) are created in the Output directory.
8. Register the `.ocx` using `regsvr32 export_grwindow_doc.ocx`. See COM Registration Requirements for details if needed.
9. Create a new Visual Basic .NET Windows Application and add the `export_grwindow_doc` Class file to the toolbox. Select View > Toolbox and select the desired tab. Right-click and select Add/Remove Items. Click on the COM Components tab, place a checkmark next to the class file and click OK.
10. Add the IDL `export_grwindow_doc` control to your form.
11. Replace the default form code with the text in the file referenced below. See code comments for details.

Note: The text file for this example, `com_export_grwindow_doc.txt`, is located in the `examples/doc/bridges/COM` subdirectory of the IDL distribution. This Visual Basic .NET code can be copied from the text file and adopted for use in your COM environment.

After building and running the project, a Windows application interface will display a histogram plot of an RGB image. You can change the linestyle of the plot by making a selection from the listbox. You can also create a histogram plot for a new image by clicking the button.