The Generated Code

Now that we’ve generated a COM object that supports OCR processing, we should take this moment to examine the generated code in support of this COM object. In particular, we will examine the interface generated for our IOcrProcessor interface and the implementation of our COM object, including its interface implementations.

As we move along this discussion, you should reflect back to what you’ve learned in Chapter 3, Chapter 4, and Chapter 5. From this examination, you should realize that the generated code is exactly what you’ve learned in those previous chapters.

Generated Interface

Let’s start off by examining the interface that the ATL Object Wizard has just generated. If you extend the IOcrProcessor icon in ClassView (e.g., click on the plus sign), you will see the OcrWholeImage method. Double-clicking on this method will jump you to the target method in the IDL file, which should look similar to the IDL script shown here:

[object, uuid(00000001-AAAA-11D1-8753-006008CDD9AE), dual,
 helpstring("IOcrProcessor Interface"), pointer_default(unique)]
interface IOcrProcessor : IDispatch {
   [id(1), helpstring("method OcrWholeImage")]
      HRESULT OcrWholeImage([in] VARIANT binaryImageArray,
                            [out, retval] BSTR *pOcrText);
};

[uuid(00000001-CCCC-11D1-8753-006008CDD9AE), version(1.0),
 helpstring("OCRServer 1.0 Type Library")]
library OCRSERVERLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [uuid(00000001-BBBB-11D1-8753-006008CDD9AE), helpstring("OcrProcessor Class")] ...

Get Learning DCOM now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.