TechniCon 1998 Sessions Sample Code The following is a list, sorted by speaker, of zip files and the session descriptions for all of the source and sample code submitted for TechniCon at CA-World 1998. All files have been uploaded in zip format and are named by session code (TA102SR.ZIP, TO102SR.ZIP, etc). Note that not all speakers submitted sample code for their sessions. The key to the session codes is the first 2 characters, which describe the focus of the session (see below). Refer to your CA-World 1998 Proceedings CDs for more information and for the corresponding session papers. CA-World 1998 Proceedings CDs can be ordered through the CA-World 1998 hotline at 1-800-224-6369 (US or Canada) or 516-342-6600 (International). Key: TA Application Construction & GUI Controls TC Client/Server Data Access TE Enterprise TI I*Net TO ActiveX & OLE TS System-Level Programming TW Hands-On Workshops Jean-Paul Bleau TE103S - Writing Multilingual CA-Visual Objects Applications Many times projects, and sometimes local laws, demand the ability to switch smoothly between different language groups. In this session, we will explore some methods of internationalizing CA-Visual Objects applications while minimizing the difficulties involved. Gunnar Bless TA101S - Customizing The CA-Visual Objects 2.0 DataBrowser This session will show how to customize and expand the CA-Visual Objects 2.0 (built-in) DataBrowser. It shows how to use the CA Container32 functions, subclass the DataBrowser, use CN_Message constants, create own events, delete unneeded events, and use Windows API functions. The enhanced browser will be able to display a column with check marks displayed in a checkbox, display bitmaps or icons in the cells, mark several records at a time in a user-specified color, change the row, freeze columns while scrolling, and much more. TS101SR - The CA-Visual Objects 2.0 Repository: Retrieving Source and Customization For a long time there was a big discussion of how to use data-driven techniques within CA-Visual Objects, since much of the built-in behavior of CA-Visual Objects depends on the painter-generated source. This session shows how to read source from the repository so the developer can paint his data (e.g. DataWindows or DBServers) and write it to a text file to manipulate and translate it in order to make them suitable for data-driven techniques. This way, he achieves the best of both worlds. This session will give examples of the Repository API, the CAVOWED.TPL, the CAVODED.TPL, and the CAVOFED.TPL. Ross Chappell TA104SR - Dynamically Creating Windows And Window Controls Using CA-Visual Objects Many applications require special data entry or display screens that cannot be defined at development time. Fortunately, CA-Visual Objects includes features that permit you to dynamically create any windows or window controls your application requires. This session presents techniques for dynamically creating various windows and their associated controls and techniques for managing the various events that may occur. TC101SR - Creating Database-Independent Applications Many of us wish to development applications that can be deployed using a choice of database (or table) storage options. We would like to design the application so that it can deploy using either traditional xBase databases or any available SQL engine, but how should such applications be designed? This session presents concepts for designing applications that are independent of database storage constraints and includes examples of the various techniques presented. Tom Elledge TI101SR - Creating An Internet Shopping Cart Application In CA-Visual Objects *** TI101SR.ZIP contains source code for both TI101SR and TI102SR *** Selling products over the Internet is hot. Everyone from hardware manufacturers to software companies is selling their products via the Internet these days. This session will explore the technology behind Internet Shopping Cart applications. Once we have an understanding of how they work, we'll look at how this technology can be implemented in CA-Visual Objects. We'll explore everything from how to retrieve information from a web-based order form via CGI to keeping track of what items the customer has placed in their shopping cart. In addition, we'll discuss additional ancillary topics such as Internet-based payment mechanisms and secure transactions. This technology is hot and CA-Visual Objects makes it simple to implement. TI102SR - Using CA-Visual Objects As An Internet Server Backend *** TI101SR.ZIP contains source code for both TI101SR and TI102SR *** Part I of this session will deal with the issues surrounding connecting CA-Visual Objects applications to the Internet. We will explore how the Common Gateway Interface (CGI) and Windows-CGI can be used to interface CA-Visual Objects applications with an Internet Server. We'll examine how to build data entry and query forms in HTML and how you can process the information with your CA-Visual Objects application. In Part II of this session we will examine techniques for communicating with the Internet Server from your CA-Visual Objects application. In this day and age of exciting and glitzy web pages that jump out and grab your attention, it is no longer appropriate to simply return plain text. We'll examine the use of an HTML class which allows various attributes, such as bold, italics and color, to be combined with tables, graphics and animation to produce eye-catching results from your backend application. Michael Ferber TA105SR - Common Controls Complete With version 2.0 of CA-Visual Objects, a complete new set of controls is available, the Common Controls. The first part of this session will give a detailed description of the Common Control classes and how to use them. In Part II of this session, we will discuss advanced features of the Common Controls. We will see how to implement drag and drop in TreeViews, ListViews and ExplorerWindows, we will implement text formatting features in RichEdit controls, and we will add new features that are available with the Common Controls library which comes with Microsoft's Internet Explorer 4.x. TS102S - MAPI Classes For CA-Visual Objects 2.0 After an overview of the functions and structures included in the simple Messaging Application Program Interface (MAPI), we show two concepts of including a C-based API in CA-Visual Objects 2.0. The first is the 'traditional' way via the _DLL statement and the second is the new 2.0 way with the PCall() function. In the process of creating classes around the MAPI functions and structures, we will discuss low-level memory management and new language features of CA-Visual Objects 2.0, like pointer arithmetic and early bound methods. With the new object-oriented mail interface, we will also implement our own Mail Explorer. Ron Gray TA107SR - Browse Views In CA-Visual Objects Browse views are an important part of most applications. CA-Visual Objects offers several controls for displaying data, such as the CA-Visual Objects standard controls, as well as ActiveX controls for more advanced displays. This session examines the various "browse view" controls such as the data browser, list boxes (including multi-column), and list views. It also looks at how to extend these controls for added functionality. TA108S - Developing A Runtime Screen Designer In CA-Visual Objects Commercial applications rarely meet all the needs of any given company. One possible solution to this problem is to let users design their own screens, either to reorganize existing data or to create new screens with new fields. This session discusses how to implement data-driven screens and develop a user-friendly screen design. TS103S - Interprocess Communications In CA-Visual Objects The Microsoft operating systems provide a rich set of mechanisms for facilitating communications and data sharing between applications. These mechanisms, collectively referred to as interprocess communications (IPC), are used in most commercial applications, such as word processors and spreadsheet applications. However, they can also be used to share data between custom applications. This session explores some of the standard mechanisms available for IPC, including Windows messages, DDE, memory-mapped files, sockets and ActiveX automation. Uwe Holz TI108SR - Writing Internet Server Applications With CA-Visual Objects 2.0 CA-Visual Objects 2.0 already delivers an example of how to create an Internet-enabled application. This sample, VOCGI.EXE, uses the Common Gateway Interface (CGI) to serve data from an Internet server application to clients. Microsoft provides another option to create server applications for the Internet: Internet Server API (ISAPI), the programming interface for Microsoft's Internet Information Server. Both techniques have their advantages and drawbacks. This session covers some details and comparisons of the appropriate APIs. It shows how to use them in CA-Visual Objects and provides you with all necessary tools and classes to make the development of Internet-enabled Server Applications as easy as possible. The following topics will be discussed: CGI vs. ISAPI, advantages and drawbacks; Internet server extension DLLs and filters; the ISAPI Extension Class Library; the base skeleton of an ISAPI Extension DLL; and developing and debugging of Internet information server extensions. TS108S - Using C++ Class DLLs In CA-Visual Objects 2.0 CA-Visual Objects 2.0 supports the calling of native and foreign strong-typed functions and methods. Stack layout of the generated code is very similar to code created by the Microsoft Visual C++ Compiler. Even methods with PASCAL calling convention can be used, which allows the implementation of COM in CA-Visual Objects. This session provides the next step and demonstrates how to call methods with other calling conventions, including constructors and destructors of C++ classes. The following topics will be covered: calling conventions of C++ methods, __stdcall (PASCAL), __cdecl (STRICT), __fastcall, and __thiscall; support of different calling conventions in CA-Visual Objects; creation of wrapper classes for C++ class DLLs; and using Microsoft Foundation Classes (MFC) in CA-Visual Objects. John Parker TW101LR - Advanced CA-Visual Objects Workshop, Part 1 This hands-on workshop will provide the CA-Visual Objects programmers with a more in-depth look at user interface design, create a simple client/server application using OpenIngres/Desktop, and examine how to handle user-specific settings. During the workshop you will learn how to use Windows callback methods, how to use multiple subforms, and more tips to make the Window Editor work for you. The aim is to enable you to tackle some of the practical problems you will meet when creating a GUI application. Dean Rapp TA115SR - ListViews To The Max! This session will show you how to take full advantage of the ListView class in CA-Visual Objects. Some Windows API functions will be covered as well. The topics covered will include, but are not limited to, how to edit cells using any of the edit controls, including the combobox; how to simulate the Block/BlockOwner found in the databrowser; how GetItemAttributes can return the same ListViewItem object as the one used to create the item; and how to implement the new Microsoft Internet Explorer 4.0 features. Robert van der Hulst TC106SR - Creating (Native) Data Servers For CA-Visual Objects In this session I will discuss the principles of the CA-Visual Objects DataServers in combination with DataWindows & DataBrowsers, and I will show how to create your own (Native) DataServers for DataSources not supported by CA-Visual Objects. Samples include a DataServer for the Microsoft Jet Engine (DAO), a DataServer for a Dutch Accounting System (Exact) and an ArrayServer. TC107SR - Introduction To SQL Programming In CA-Visual Objects A lot of developers are aware of the advantages that Relational Database Management Systems (RDBMS) have over the traditional file based xBase data storage. Better integrity and access control are some of the advantages. This session will offer an introduction on how to write CA-Visual Objects programs that can operate as a front-end to these RDBMS using the SQL Language. TC108S - Using the DBFCDX Driver In CA-Visual Objects CA-Visual Objects can access databases through the RDD (Replaceable Database Driver) system. The products come with various RDDs such as the DBFNTX RDD and the DBFCDX RDD. This session shows how to optimize the usage of the DBFCDX driver. Topics include index creation, progress bars, conditional indexes, scoped indexes, custom indexes, query optimization, and BLOB support. Tom Walden TA120SR - Using TreeView And ListView Classes To Browse Directories and Databases This session will show the user a real-world example of using the CA-Visual Objects 2.0 TreeView and ListView classes to create their own custom database explorer. This is very much like the Windows Explorer and the CA-Visual Objects IDE, except that it is browsing in tree format: subdirectories, databases, individual records, related records, and so on. If the user so chooses, he/she can also edit/add/delete any given record with a data entry screen.