Sax Comm Objects InformationFor more info, call 1-800-MIKESAX.
VBX Wizard makes using VBX controls in Foundation Classes Easy
Microsoft Foundation Classes v2.0 has support for using Visual Basic Custom Controls in your programs. The code used to set or get properties, however, is very lengthy and certainly not as compact as in Visual Basic. This makes using Custom Controls in MFC2 a not less elegant than it could be.
VBXWizard solves this problem by creating an include file that defines a custom class for every custom control in a .VBX file. This custom class contains member functions that return a special class, depending on the proprety's type (CIntProperty, CHszProperty, etc..).
These special property classes (defined in VBXWIZRD.H) support assignment and casting operators so they can be used almost as if they were real ints, longs, CStrings, etc. The custom poperty classes all use inline functions and, using the optimizing compiler, they should be just as efficient as directly using Get/SetProperty.
Without VBX Wizard:
// Set Set font to Helv and increase font size
Button1.SetNumProperty(13, Button1.GetNumProperty(13) + 5);
// If button1 one is bold, Button2 shouldn't be bold and vice versa
With VBX Wizard:
Button1.FontName() = "Helv";
Button1.FontBold() = !Button2.FontBold();
Using VBX Wizard
When you start VBXWizard, the screen will look like this:
v}r#,(BITMAP)^4U??V? 1 6_2(? 0 66? 4V 3V4t?o0` 7o0` 77o0`?l60` 0l60` 01jl60`?30 7X30 46930?<1g 51g 44`1g>`fg3 3`fg3 41oo``fg3?&0
,`3?V1I$1a?f1fq&[email protected]I$1a?f1fq&I$1a?f1fq&uI$32d2I'$?$I$32d2I'$?$I$32d2I'$?$UNI$32d2I'$?$&<393>$>fs2I?$<393>$>fs2I?$<393>$>fs2I?$v<393>$>fs2I?$v<3333>$>d>g32Iy?$<3333>$>d>g32Iy?$<3333>$>d>g32Iy?$i]<3333>$>d>g32Iy?$<2y'3?3$2d2D2I$$?<2y'3?3$2d2D2I$$?<2y'3?3$2d2D2I$$?/Ne<2y'3?3$2d2D2I$$? i??h??VNjh~A&AAvAgAgAg&vg
[email protected]?&D?F3&fI>I$3OL$3>ddI2I3&fI>I$3OL$3>ddI2I3&fI>I$3OL$3>ddI2I3&fI>I$3OL$3>ddI2I3D&fL9$?L$0>2I3&&fL9$?L$0>2I3&fL9$?L$0>2I3v&fL9$?L$0>2I3/&fN$>dL$3||2I2d/&fN$>dL$3||2I2d/&fN$>dL$3||2I2d&fN$>dL$3||2I2dv/&fI>I2d$3>dd2I2d/&fI>I2d$3>dd2I2d!/&fI>I2d$3>dd2I2d&fI>I2d$3>dd2I2dz/32p??$83I/32p??$83I1/32p??$83I232p??$83Ik/?/?V/?b???x????*??OGNWwww_3vj'>y'>y'>y'>yP<<>y9<<>y9A<<>y9<<>y9<<>1?<<>1?<<>1?P<<>1?<$I~>1?c~aF<$I~>1?c~a<$I~>1?c~aV<$I~>1?c~a?&d$L?$$?&d$L?$$?&d$L?$$C?&d$L?$$<$?d>[email protected]|$d<$?d>[email protected]|$d<$?d>[email protected]|$d<$?d>[email protected]|$dF<$?d>I?&d$O|$d<$?d>I?&d$O|$dR<$?d>I?&d$O|$d2<$?d>I?&d$O|$d<'$O3d>I9&d$L?|$d<'$O3d>I9&d$L?|$d<'$O3d>I9&d$L?|$d<'$O3d>I9&d$L?|$d<&g>yg$ag~&d<&g>yg$ag~&d<&g>yg$ag~&dv<&g>yg$ag~&d^v#???F???v????&???F????`d>0a&?310c?`d>0a&?310c?`d>0a&?310c?`d>0a&?310c3&|$>fL|d$2dd''3&|$>fL|d$2dd''3&|$>fL|d$2dd''3&|$>fL|d$2dd''3&D$>fL92d2d'3&D$>fL92d2d'3&D$>fL92d2d'3&D$>fL92d2d'W3&|$>fL92d?2~d&dP3&|$>fL92d?2~d&d3&|$>fL92d?2~d&d3&|$>fL92d?2~d&d3&|$~fL|y2d2g9d'&d3&|$~fL|y2d2g9d'&dN3&|$~fL|y2d2g9d'&d3&|$~fL|y2d2g9d'&d`$0y3?<33~33`$0y3?<33~33`$0y3?<33~33P`$0y3?<33~33V&_?F=Fgsv&]&&v7FtV&_&82&&vW;oVVV
'R'''&2d'2f2d'2f2d'2f2d'2fg'3g'3&g'3/g'3Pg&03g&03Zg&03g&03gg$&|~?3tg$&|~?3g$&|~?3g$&|[email protected]$3 ~?3g$3 ~?3g$3 ~?3g$3 ~?3g$3'~3>g$3'~3>_g$3'~3>g$3'~3>j>d$r&3|2~V>d$r&3|2~&>d$r&3|2~>d$r&3|2~&x03|?:&x03|?&x03|?&&x03|?~?F~?*~?~?W&H&0VO??<.O??IfO82d$L? gL3>IfO82d$L? gL3>IfO82d$L? gL3>IfO82d$L? gL32ILs2d?$0?<32ILs2d?$0?<32ILs2d?$0?<32ILs2d?$0?P_RVP`PoEF_XZFF&V~__o]uVF^vP&P^FuVW~
$2d|333V$2d|333 $2d|333 12dL32O33?12dL32O33?12dL32O33?12dL32O33?h0sfO980sfO98o0sfO98R0sfO98F????hPn^tPv_h
You can type in the name of the .VBX file in the first edit box, or press the "..." button next to it to browse. The second edit box requires the name of the include file that will contain the custom class definition(s). Again, you can browse using the "..." button.
When you press the "Convert" button, VBX wizard will write a custom class definition to the destination file which contains a member function for every property in the custom control.
In your C++ program, you should first #include the include file you've just built (also make sure that "VBXWIZRD.H" is in your INCLUDE path). You don't have to include vbxwzrd.h because this is done automatically in the include file that was generated. If you use a custom control, use the type defined in the include file instead of CVBControl. The rest if obvious...
Integrating VBX Wizard in Visual Workbench
You can make access to VBX Wizard easy by adding it to the tools menu:
1. Start Visual Workbench
2. Select Options, Tools...
3. Press Add... and select the VBX Wizard .EXE file
4. In the
Menu Text field, type "&VBX Wizard"
5. Press Ok.
Sax Comm Objects makes Windows Communcations Easier Than Ever
WHAT SAX COMM OBJECTS IS
C/C++ function and class library for building serial communications applications under Windows.
Powerful and easy file transfers, sophisticated terminal emulation, Elegant function interface.
Your competition can buy this product, too.
If you do Windows development and you need communications, Sax Comm Objects is a must.
FOR MORE INFORMATION
Sax Software203 Bellevue Way NE #217Bellevue, WA 98004Compuserve 75470,1403Call 1-800-MIKESAX
Sax Comm Objects Makes Windows Communications Easy
With Sax Comm Objects and your Windows C/C++ compiler, you've got all the tools you need to quickly and easily build powerful serial communications applications for Windows.
Features include 100% background file transfers with support for the most popular transfer protocols, including ZModem, Kermit and Compuserve B+.
Through event notification, your program is notified whenever something important happens. So when a file is about to be transferred, a file transfer is aborted or when new characters have arrived in the input buffer, your application will be notified.
The built-in termal emulation includes support for auto processing. If you turn on auto-processing, all keyboard and serial input will be process for you. You can also tell the comm. control to notify you when certain keywords come in. Of course, if you prefer to poll the keyboard and comm. port manually, that's also possible.
Over One Hundred Modems Supported
The popularity of the modem has caused numerous hardware makers to introduce their own models.
Although most of these models follow the Hayes AT standard, almost every modem brand or model has its own slight modifications. This has caused a lot of worries and tech. support calls for application developers.
With Sax Comm Objects, you can avoid all this by using the very extensive modem database. All the modem functions that are part of Sax Comm Objects use this modem database to transparantly support all the popular modem models.
You don't need to worry about complicated modem commands or switches. Just call a function to dial a number, or to wait for a call to come in.
When something goes wrong, you will receive detailed status information, independent of the modem brand or model you currently work with.
Background File Transfers
Don't let a file transfer stop you from doing anything else in your application while the transfer is running. After you call a function to start the file transfer, your program immediately gets control.
The Sax Comm Objects file transfer engine uses advanced multitasking tech- niques in Microsoft Windows to make the file transfers happen
So when a file transfer is started, you can continue to do other things. You'll get notified when something important happens, such as when the file transfer is finished, or when a certain number of bytes have been transferred.
Since everything runs in the background, it's also very natural to do multiple file transfers at once, on different ports.
You get a lot of control over files being transferred. Just before the file will actually be transferred, the file transfer engine asks your application to verify if everything is all Ok. If for any reason your program finds that the file transfer should not proceed, for example because it's not in the right directory, you can either abort the transfer immediately, or you can change the name or directory of the file being transferred on the fly.
Even when a download is still in progress, your application can already read from the file. This lets you implement features like on-the-fly virus detection, and preview- while-downloading.
Power and ease of use are important, but so is speed. Even though they run in the background, Sax Com Objects file transfers are among the fastest in the business.
If you want, you can use the built-in file transfer progress dialog, which automatically displays the name current filename, how many bytes were transferred, a gauge indicated progress, etc.. But you can also implement your own way of reporting file transfer progress. Whenever something special happens (eg: a certain number of bytes was transferred, an error occured, a filename is validated), the file transfer engine will notify your application, and you can take appropriate action.
Documentation On Paper and In a Help File
The quality if the documentation of your programming tools has a direct effect on the quality and speed of your work. That's why Sax Comm Objects documentation includes a tutorial, a detailed reference manual with lots of examples, and a Windows Help file.
Debug Version Saves Time
Sax Comm Objects includes a special debug version which generates special diagnostic information and warning messages. This makes it very easy for you to spot bugs in your code.
The library automatically verifies if all the function calls and parameters make sense. If you use an invalid parameter, a warning message will be displayed, indicating the name of the function that was called, the value of the parameter that was incorrect, and an explanation of why this was a mistake.
This not only saves time, but also increases the robustness of your programs and makes sure that your program doesn't contain hidden bugs. Debug Output can be sent to a window, a file, your debugger, a second monitor, or to another serial port.
Color Terminal Emulation
Sax Comm Objects sup- ports the popular emulation modes: TTY, ANSI, VT52, and VT100 emulations. All emulations are in full color, but you can set a color filter, that optimizes the display for monochrome or laptop LCD screens. That's a great feature for laptop users.
You can set the scroll-back buffer to any number of lines (limited only by available memory), and the user will be able to look at information that scrolled off is terminal, select it with the mouse and copy it to the clipboard.
If you want to log the current communications session, you can turn on automatic file capturing, which sends all terminal activity to a file. The file capture can work in three modes: 'standard' -- like other comm. programs do it, 'visible' -- which works great if you call BBS-systems that used Ansi screen editors, or 'binary' -- which also stores all terminal codes in the file, so can later replay it to review your terminal session exactly as it appeared on the terminal window (including color and even animation).
In the terminal window, the user can use the mouse to select text in the terminal screen or the scrollback buffer and copy it to the clipboard.
Including all these features is actually very simple and requires very little programming. You create the terminal window and set the emulation options, turn auto-processing on, open the port, and your done.
The terminal control will automatically get characters from the com. port and send them to the terminal window, or process keyboard and mouse input from the user.
If the terminal window is too small to display an entire terminal screen, horizontal or vertical scroll bars will appear. Or, you can use the AutoSize feature, to let the terminal control resize itself so the entire terminal screen can be displayed.
You can use bitmap fonts, True Type or ATM fontsfor terminal emulation. You can even instruct the terminal control to automatically convert input and output between different character sets. It's also possible to use bold, italic and underline attributes.
Spy on your Communications Apps
The ComSpy utility which is part of Sax Comm Objects is one of the most useful debugging tools you'll ever have. It lets you keep track of everything that happens inside your communications programs.
Because everything happens real-time in serial communications, it is very dificult to use standard debuggers to step through your code. With Sax ComSpy, you get a de- tailed log file that gives you a complete track of everything that happened.
You can track every function call that is made to the communications library including parameters and return values. It's also possible to monitor the data that arrives at the communications port.
At the click of a button, you can review the status of your communications control, including all properties, settings and status registers.
Output can be sent to a file, the ComSpy window, or to the standard Windows debug device. This lets you integrate ComSpy with your favourite Windows debugger. Of course, ComSpy also displays the warning messages that are generated by the debug version of Sax Comm Objects.
The debug version also includes special functions that provide hooks into the comm. library and give you all the power you need to let you write your own ComSpy utility.
C, C++ and Application Frameworks
You can use any development system that has a DLL calling interface, but Sax Comm Objects has special support for C and C++. The documentation examples and sample programs are all written in either C or C++.
For C++ programmers, Sax Comm Objects contains different classes which include different levels of functionality. The base class only supports basic commu- nications. A derived class also supports terminal emulations and yet another child class also supports file transfers. This lets you include only the functio- nality you need, without additional overhead.
If you use Borland's Object Windows Library (OWL), you can use the special comm object class, which is based on TControl. This lets you fully integrate your comm. objects in the Borland application framework and use standard TWindow and TControl member functions on the terminal window.
Sax Comm Objects provides full integration with Microsoft Foundation Classes, and has comm object classes which are based on the CWnd and CView classes. So you can use all the Microsoft Visual C++ tools like Visual Workbench, Application Wizard and Class Wizard to visually build powerful communications applications for Microsoft Windows.
Microsoft is a registered trademark and Windows, Visual Basic, Visual C++, AppWizard, ClassWizard, AppStudio and Microsoft Foundation Classes are trademarks of Microsoft Corp. Borland is a registered trademark of Borland International. Sax Software, Comm Objects and the Sax Software logo are trademarks of Sax Software.
se to select text in the terminal screen or the scrollback buffer and copy it twtpmifVbf_[X-T.O$.6w7rJnKie`\YUR'NJ$wso(k9gc_[WSOKwpOmif>b[_1[^XcTQ`M`|x
<'on also includes special 0 1ooks into the comm. library and give you all the power you need to let you write your own ComSpy utilityE+ and Application Frameworks
You can use any development system that has a DLL calling interface, but Sax Comm Obje Arialal support for C and C++. The documentation examples and sample programs are all written in either C or C++.