|
|
|
|
|
|
|
|
|
|
FAQ About: CommX |
What is "CommX"? | Greenleaf CommX is a newly developed set of dual-mode ActiveX controls for Win32. CommX includes feature-rich port controls, standard file transfer protocols, and terminal emulations. |
What are the real benefits of CommX? | Multithreaded, event-driven serial I/O, standard file transfer protocols, and standard terminal emulations in the context of modern ActiveX technologies. |
What has changed in 1.1? | A number of bugs were fixed, a lot of examples and tutorials are now provided both on the CD and Website for major development environments including:
See notes immediately below regarding some of these environments / languages.
|
What languages are supported? | CommX is a true ActiveX component. It is built with ATL 2.1 and is not language dependent. Notes on some supported development environments listed below: CommX supports the compilers noted in the item just above. Notes on Microsoft compilers:
Notes on Inprise (Borland) compilers:
|
In compiling your examples for C++Builder Standard or Professional Editions (including the Academic versions), I'm getting an error message that lists about a dozen missing files! What's going on? | You can use the current version of the Examples (from the CD, from Inprise' "Companion Tools" CD, etc.) by doing the following: On the menus, go to Project | Options, open the Packages tab, and un-check the "Build with runtime packages" checkbox.
|
What operating systems are supported? | CommX supports the following operating systems: |
Will CommX work with 16-bit | No, |
Do I have to understand ATL and COM in order to use CommX? | Depends on what you want to do. For instance, you can add a COM port, terminal emulation, and ZModem to a VB application with three drops and a few lines of code. If you want to develop a remote OLE server, you might choose to use ATL as the framework. Or you could choose MFC. Or a combination of MFC and ATL. As for the Component Object Model (COM) standard, it defines a binary interface which all ActiveX controls and tools know how to use. It doesn't hurt to understand COM, but you don't have be a wizard in order to use CommX. It's pretty simple, really. With the product you get some tutorials and examples to help you get up to speed quickly. |
Can CommX be used with MFC? | Yes. |
Is CommX a VBX? | No. It's comprised of the new 32-bit dual-interface COM technology compliant ActiveX components. VBX components used to be used to provide add-on functionality for Visual Basic, but the VBX format has been replaced almost everywhere by ActiveX (OCX or DLL files). |
Can I use it to add a COM port to my custom Visual Basic controls? | Yes. CommX, as most ActiveX components, is fully capable of being encapsulated or contained - fancy words meaning used on a form or in an application. |
What about OLE Automation? | Yes, that too. ActiveX can be used as an InProc server or as an Automation server. |
Doesn't CommX further complicate the decision of what Greenleaf product to buy? | It shouldn't. Not if you're a Win32 developer. If you're a Visual Basic programmer, a Delphi programmer -- any language platform supporting ActiveX, the choice should be CommX. We recommend CommX for those of you familiar with ActiveX, Comm++ for hard-core C++ developers, and CommLib for 16-bit platform flexibility. |
What interfaces are exposed | IPortCtl exposes 40 properties, 20 methods, and 11 different events for comprehensive robust serial I/O IFileXferCtl exposes 25 properties, 3 methods, and 6 events, providing for very powerful ZModem and ASCII file transfer -- plus laying the foundation and providing the bricks and mortar for other protocols to come ITermCtl adds 24 properties, 22 methods, and 3 key events that together facilitate configuring many terminal emulations. PC-ANSI and TTY emulations are included. |
Why can't I register the commocx.dll as mentioned in the help file? | Register CommX.ocx. The documentation has been updated to reflect the current file name in version 1.10. |
Why can't I see the properties of the controls at design time? | Affected compilers: Power++ 2.1 Power++ creates an interface DLL of CommX and shows all properties as methods instead of properties. This requires that all properties must be set at run time. You can do this programmatically or by leaving the control visible in your project and right-clicking the control icon. |
Why is the Terminal Control not displayed properly at design time? | The Terminal Control is displayed properly at run time, but due to the variations of design time support for windowless controls in the different OCX containers, the terminal control may not be displayed as it has been defined by its properties. In most environments, if you need to see the size and font you intend to use, make sure to set them at design time - right-click the control on your form or dialog and select the property values you need. |
Why can't I get CommX to work in Delphi 4? | If you are having this problem you probably have not gotten the update to Delphi. We believe that Inprise has sent CDs out to everyone, but if you have not received it, read on. You need to obtain update file(s) from Inprise. Files can be downloaded from the Inprise FTP site. (files d4xupd1.exe ... d4xupd3.exe, where 'x' is 'c' for Client Server version Delphi, 'p' for Professional version, and 's' for Standard version. It's our understanding that these updates are not cumulative, so you may have to download all three files for your version. HOWEVER, we have observed that only the first file (e.g. d4pupd1..exe or d4supd1.exe or d4cupd4.exe) corrected this problem - in addition to other early anomalies that were in the release version of Delphi4. Thus you may not need the other 2 files. You can also access Delphi updates and patches at the Inprise Web site. |
Binding the Port Control with other controls available in CommX causes an access violation. Is this being addressed? | Affected compilers: Visual FoxPro 5.0, Power++ 2.1, and PowerBuilder 6.0 This problem is resolved in CommX version 1.1 |
Why can't I adjust the parity when using an 8-bit word? | This restriction was fixed in version 1.1. |
Why can't I access more than 9 COM ports? | Affected environments: Windows NT This is resolved in version 1.10. |
Why are invalid characters sometimes present when I send or receive strings? | The problem may be that the strings contain NULL characters that are treated as terminators by some languages. This problem was resolved in version 1.1 |
Why does AddKeyMacro not work in Visual C++ 5.0? | The resolution is available in version 1.1. |
Why do I receive a return code of -1 when the read/write buffer is not empty? | The incorrect buffer size is being detected. The resolution is available in version 1.1 |
Why is the reported free space in the receive and transmit buffers sometimes larger than expected? | The incorrect buffer size is being detected. The resolution is available in version 1.1 |
Why can't I read/write more than 1 byte when using the ReadByteBuffer / WriteByteBuffer methods? | Affected compilers: Visual Basic 5.0 The resolution is available in version 1.1 Note: Since these methods required a char * as the first argument, their usage is not recommended in Visual Basic. See the documentation for hints. |
Why does CommX not work with Visual FoxPro 5.0 after installing Service Pack 3? | Service Pack 3 switched the dual interface capability to "OFF" as the default for Visual FoxPro. Because CommX is a dual interface ActiveX control, you will need to work around as follows (or update to VFP 6.0) 1. Modify the Load Event Form OR 1. Issue the command =SYS(2333,0) in the Command Window |
Why are all serial devices not shown on the Port Control properties page? | Some serial devices do not associate COM port names to serial devices in the registry. CommX will not detect serial devices if they are not associated with a COM port. You may notice some difference between port enumeration in Windows NT and Windows 9x. |
Why are some of the serial devices on the Port Control properties page grayed out under Windows NT? | The resolution is available in version 1.1. This seems to have corrected the problem for NT 3.51 and 4.0. We're not aware of this problem in Windows 2000 so if it happens to you, please let us know. |
Why can't I convert a BSTR to a string when using Inprise (Borland) C++Builder 3? | The resolution is available in version 1.1. If you're not familiar with the differences between a BSTR and a string, there is a good section in the CommX documentation which was excerpted from an excellent Microsoft KB article. |
Why can't I send a file that resides in a folder with spaces in the name? | Ouch. The resolution is available in version 1.1 |
Is there a limit on the length of a trigger string in the Terminal Control? | Yes, a trigger string is limited to 16 bytes. |
Why is my CPU usage sometimes reported as 100%? | This was a gotcha in version 1.0 only under circumstances that are difficult to describe. Certain conditions caused CPU cycle burn during Timed operations. The resolution is available in version 1.1 |
Why do I have to click "OK" after a file transfer is complete? | The resolution is available in version 1.1 |
Why does a crash occur when I call the Port Control ClearLineStatus method within the LineStatusErrorEvent handler? | The resolution is available in version 1.1 or Use the following work around within the LineStatusErrorEvent handler: If ( errors !=0 ) |
Where can I get more information about CommX? | |
What's the difference between CommLib and Comm++? | The main difference is that CommLib 5.26 is a C library and Comm++ 3.07 is a class or object oriented package. Both products support DOS, Windows 3.X, Windows 95, 98 and Windows NT. |
When I build an ATL control or an ActiveX control that contains CommX (or other licensed) controls, I get an access violation in Ole32.dll -- "Unhandled exception in EXENAME.EXE(OLE32.DLL): 0xC00000005: Access Violation." What can I do to fix this? | This message is related to a licensed control inside a custom ATL composite control. The application needs to include the file " |
|
|