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'97. All files have been uploaded in zip format and are named by session code (TA102SR.ZIP, TO102SR.ZIP, etc). 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'97 Proceedings CDs for more information and for the corresponding session papers. CA-World'97 Proceedings CDs can be ordered through the CA-World'97 hotline at 1-800-224-6369 or 516-342-6600 outside the US/Canada. Key: TA -- Application Construction and GUI Controls TC -- Client/Server Data Access TE -- Enterprise TI -- I*Net TL -- Object Linking and Embedding TM -- Migration TO -- Object-Oriented Programming TP -- System-Level Programming TS -- Special Interest TW -- Hands-On Workshops JEAN-PAUL BLEAU TA102SR -- Writing Multilingual CA-Visual Objects Applications More and more international markets are getting into focus when developing applications. The need for multilingual software has become an important priority in the planning. We will study the two most used methods for creating multilingual applications, DLL tables and data-driven labeling. We will also study the design of the user interface to take care of labeling. This session will show how the Windows International settings or Windows version can change the interface of your application. We will also look at the new Unicode, what it is and how you can use it. TO102SR -- Writing Financial And Accounting Software In CA-Visual Objects Development of specialized financial and accounting applications requires more knowledge than a programmer normally has. We will discuss the approach for developing such an application with the help of power users that will guide you through the development cycle. How do you develop specific business logic to be integrated into your application? Country specific logic is important to international applications; taxes, laws, and other items must be configurable for many countries. This session will show you how to develop a library of business logic classes. We will also look at how different accounting can be between companies, and the need for different report formats, sharing the financial data with other applications, and data entry interfaces that follow the work flow of the user. You will have to offer many options for the user interface and even the customer options (display and printout). SEAN BUCKNALL TA106SR -- Real World Tips For CA-Visual Objects 2.0 This session presents an avalanche of tips and tricks designed to help you get the best possible performance from your CA-Visual objects applications. This session will advise you on how to increase performance, how to extend CA-Visual Objects capabilities using the Windows API, and explains the facts about the "odd" behavior of some applications in Windows. TA115SR -- Creating a New Application Framework For CA-Visual Objects 2.0 This session covers how to build your own application framework to replace the Standard Application and why it is necessary for you to do so. Includes an example of implementing validation at the control level instead of the default form-level behavior. GINNY CAUGHEY TP110SR -- Modem Communication With CA-Visual Objects 2.0 In previous TechniCon conferences I presented a serial class to provide simple serial communications in CA-Visual Objects using the Windows API. This session builds on the serial class idea to include modem communications with CA-Visual Objects 2.0 using the Windows Telephony API. TAPI provides a device-independent way to handle line and phone devices, and CA-Visual Objects 2.0 provides the language elements you need to take full advantage of TAPI. TAPI concepts will be covered along with working with CA-Visual Objects 2.0 at the API level. ROD DA SILVA TL105SR -- Building Distributed OLE Components Using CA-Visual Objects 2.0 Application development has changed dramatically in recent years with the coming of age of distributed object models that allow application components to run across a network yet still interoperate with each other as if they were local to one another. Such distributed application architectures require considerable rethinking over more traditional approaches. This session is designed to show how to systematically separate the business logic of an application from its user interface. Only when you have identified and isolated a "GUI-less" business object model can you consider the process of "distributing" it using one of the distributed object technologies available today. This session will demonstrate the concepts discussed by taking an otherwise typical CA-Visual Objects 2.0 application and restructuring it into an "n-tier" architecture - the data source tier, the business logic tier and the GUI presentation tier. (Sample file is VOCOMB1.EXE.) TOM ELLEDGE TI101SR -- Creating An HTML Class in CA-Visual Objects 2.0 Hypertext Markup Language (HTML) is the basis for documents on the World Wide Web. This session will look at HTML from the ground up. Once we are familiar with the HTML tags that make up a document, we will launch into the construction of an HTML class in CA-Visual Objects. Using this class we can create static World Wide Web pages or respond to information requests from our Web pages. Embedding graphics from a database, turning multidimensional arrays into tables, and running Java applets are but a few of the exciting concepts that will be covered. MICHAEL FERBER TA104SR -- Controls Complete: Standard, Common, And OLE Controls CA-Visual Objects 2.0 has two new sets of controls available, the Common Controls and the OLE Controls. There are also enhancements made to the list of the Standard Controls. This session will give an overview of new features in Standard Controls, like drag and drop or bitmaps on buttons, working samples for the Common Controls and a brief description how to work with OLE Controls. With this complete overview of available controls, the misuse of controls should be a thing of the past. TP106SR -- MAPI Classes For CA-Visual Objects 2.0 After an overview of the functions and structures included in the simple messaging application programming interface (MAPI), we show two concepts of including a C-based API in CA-Visual Objects 2.0. First, the "traditional" way via the _DLL statement; second, the new 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 implement our own Mail Explorer. TP111SR -- SubSystem For The CA-Visual Objects 2.0 IDE The Subsystem API as part of the CA-Visual Objects 2.0 SDK describes how to create and include tools in the CA-Visual Objects IDE. Unfortunately this API is only for C programmers. This session will show you, how to create subsystems in pure CA-Visual Objects code. We discuss the Subsystem API, some parts of the ADAM API, how the C-based API can be included in CA-Visual Objects and which parts from the CA-Visual Objects language cannot be used. With this information, we are able to create our own subsystems. We will develop a simple subsystem using a modal dialog box and a more sophisticated MDI child subsystem. PAUL FOX TW104LS -- Introduction to SQL Workshop SQL can be used to access data from the desktop to super server. For some of the "Big-Iron" such as OpenIngres, Oracle and DB2, then SQL is often the only means to access the data. Even die hard DBF users can not ignore it, as SQL is often used by end users for querying DBF files. Many tools such as CA-Visual Objects, Report Writers and Query tools insulate the user from native SQL in the name of productivity. But what happens when things go wrong, or you want that little bit extra from your SQL? For this, a working knowledge of the basic SQL constructs will prove invaluable. Following a brief introduction to SQL, we will contrast the major differences between DBF access and SQL. RON GRAY TO104SR -- Developing A Report Class In CA-Visual Objects 1.0 And 2.0 With a custom-written report class you can create powerful reports on-the-fly and display them to the printer or screen. This can offer greater flexibility than is possible with CA-RET since data is not passed via DDE. Besides having control of the interface and report generation process, an integrated report class also has access to field specs, variables, data servers, and other information not readily available in CA-RET. TP107SR -- Interprocess Communications In CA-Visual Objects 1.0 And 2.0 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, pipes, sockets, and OLE. PATRICIA HOGUE TS113SR -- International Software Issues This session will cover two main topics relating to international software creation and distribution. We will discuss customs issues and printing documents, diskette labels, packing slips, and commercial invoices in languages other than English. We will also deal with creating software for international use. My company is in the process of taking over worldwide distribution of our software and I will be able to present real world experiences in handling these and other issues. UWE HOLZ TC103SR -- Building A Multithreaded Web Server With CA-Visual Objects 2.0 This session combines several interesting topics in order to create a usable sample application: the concept of multithreading, threads in CA-Visual Objects 2.0, the basics of low-level TCP/IP programming and the HTTP protocol. As a result of these topics, a working HTTP server class in CA-Visual Objects 2.0 is presented. This class can either be used to run a basic Web Server serving HTML files to the Internet, or it can be integrated into a CA-Visual Objects application to serve application data to the Internet. TP101SR -- CA-Visual objects SDK 2.0 The CA-Visual Objects 2.0 SDK contains different sets of APIs and source code: - Design Time APIs - Runtime APIs - System source code - Sample applications Based on these APIs you can customize your development system and create different kinds of add-ons. This session shows you how to integrate your favorite tools and toys in CA-Visual Objects, and how to create your own IDE components and libraries. You will get a lot of undocumented tips and hints directly from the developers and learn how to interact with the repository. SUSIE JONES TW106LS -- Advanced CA-Visual Objects Workshop 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 Open Ingres/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. MARK LINCOLN TA103SR -- Handling Bitmap Images In CA-Visual Objects 2.0 When developing an application in CA-Visual Objects 2.0, it is often desirable to add bitmap images to the application interface to make it more pleasing or intuitive for the user. In this session, we will look at using bitmap images in a CA-Visual Objects 2.0 application. We will see how bitmap images can be displayed on windows and controls. We will see how a splash screen is implemented at the start of an application, and how a client's company logo can be displayed on a window. We will also look at how bitmap images are handled using the Bitmap classes and how we can draw and resize them in an application. TC105SR -- Constructing A Database Class In CA-Visual Objects 2.0 Although the DBServer class in CA-Visual Objects 2.0 is very powerful and extremely flexible for implementing a database application using .DBF files, it does not provide any facility for handling typical DBMS operations such as table maintenance and enforcing referential integrity. The focus of this session will be to construct a Database class along with an enhanced DBServer class to perform these functions. The Database class will accept rules to enforce referential integrity of the DBServer objects that it contains. It will also handle all of the maintenance functions for the tables included in the Database. TC106SR -- Constructing User-Defined Queries In CA-Visual Objects 2.0 In almost every database system implemented, the user wants the ability to analyze the stored data and create reports or tables. It is the task of the application developer to provide the necessary reports and/or tables so that the user can perform this analysis. Often, however, the user will want to perform ad-hoc reporting or querying of the data using parameters or criteria that do not exist in the stock application reports. This session will show how to implement a query system that can be used by the end user for constructing ad-hoc queries and reports from the application database. The query system will support single or multiple tables in the application database. It will also store the queries created by the user in a query repository so that they can be reused. The query system will be implemented so that it will support any database format (DBF, ODBC, SQL, etc.) depending on the format used in the application. TM101SR -- Implementing A DBServer Class Although CA-Clipper 5.3 adds many new and powerful features to leverage the developer's CA-Clipper expertise, it does not contain a native DBServer class to use in accessing an application's .DBF files. This session will outline the construction and implementation of a DBServer class along with several collaborating classes using object-oriented techniques and CA-Clipper 5.3 to simplify access to .DBF files. The DBServer classes for CA-Clipper 5.3 will function similarly to the DBServer in CA-Visual Objects so that the developer is able to use common data access techniques in both environments. The DBServer class will handle all of the RDDs packaged with CA-Clipper 5.3 MARK LUKIANCHUK TL103SR -- Integrating CA-Visual Objects With Microsoft Word And Excel Today's marketplace will no longer permit the creation of monolithic applications that do not integrate well with others. Under Windows, programs are expected to work in concert together. Integrating your CA-Visual Objects code with Microsoft Word and Excel can increase the usability and appearance of your project, pleasing your users and reducing the amount of training they will require. Applications can be integrated through DDE as well as OLE. An in-depth look at the methodology of integration will be pursued. ROBERT MALONEY JR TS111SR -- Using High- And Low-Level Graphics in CA-Visual Objects 2.0 CA-Visual Objects includes a rich set of graphics classes. You can also use Widnows API calls to draw the screen. However, other APIs exist for painting the screen, such as OpenGL. This session will present the merits of the three painting methods: ease of use, performance, and features. Other topics include: double-buffering, shading, and lighting. PAUL PIKO TP109SR -- Introducing The CA-Visual Objects 1.0 And 2.0 SDK This session takes a look under CA-Visual Objects' hood via the SDK. The programmer and class designer can find insight and inspiration from the source to CA-Visual Objects classes. The APIs provide access to CA-Visual Objects at a base level. This overview shows you what you get when you purchase the CA-Visual Objects SDK, and how to plug into the development environment. TS104SR -- Creating Windows Help Files Help files - especially under Windows - can be a source of frustration or salvation. How will you supply help for your CA-Visual Objects applications? This session looks at the basics of designing and writing Windows help files. It delves into advanced features such as graphics, custom buttons, and the ability to launch applications from within Help. As you will see, Windows Help can be quite complex - but this session will also point you at tools that will make the job easier. ANURAG PRASAD TA112SR -- Building Interfaces CA-Visual Objects 2.0 New GUI Classes This discussion will focus on component development using the new GUI Classes, particularly how to easily combine simple components into advanced, reusable components, and extend them to meet today's interface design requirements and expectations. Topics will include building complex controls, extending the class libraries to capitalize on Microsoft and Computer Associates APIs included in CA-Visual Objects 2.0, and taking advantage of the new features in the Internet Explorer 4.0 common controls DLL. BUD PUSPOSUHARTO TS108SR -- Creating Multimedia Applications With CA-Visual Objects 2.0 You hear the term multimedia everywhere. Everyone wants to run multimedia applications. As developers we can use CA-Visual Objects to create these multimedia applications. This session will show how to use Media Control Interface (MCI) and Object Linking and Embedding (OLE) from within CA-Visual Objects to control multimedia devices, including waveform-audio devices, MIDI sequencers, CD audio devices, and digital-video (video playback) devices. The file TS108AV.ZIP contains an optional .AVI file. ANTHONY ROTOLI TW105LS -- Application Construction With CA-Visual Objects 2.0, In this workshop you will learn advanced techniques for constructing applications using CA-Visual Objects 2.0. During this full day workshop you will learn how to construct a complete, fully-functional application using the tools available in CA-Visual Objects 2.0. The goal for this workshop is to allow you to conquer common programming tasks and to take advantage of CA-Visual Objects graphical development environment. PHILIP SCHWARTZ TA108SR -- Complete Guide To Error Handling In CA-Visual Objects 1 And 2 This is a detailed talk on the error handling strategies that should be used when programming in CA-Visual Objects. This talk will focus on the special attention which must be given when writing error handlers for event-driven, GUI, object-oriented, Windows-based applications. The CA-Visual Objects error handling architecture will be discussed in great detail and the core error handling issues will be examined via a special CA-Visual Objects Error Inspector. TA116SR -- Complete Guide To Debugging In CA-Visual Objects 2.0 This detailed talk focuses on the error handling strategies that should be used when programming in CA-Visual Objects. GUI applications greatly increase the complexity of exception handling because of event- driven dispatching and the possibility of concurrent programs. This presentation focuses on the special attention required when writing error handlers for event-driven, GUI, object-oriented, Windows-based applications. STEVE STRALEY TM106SR -- The Rising Of The Phoenix...The Preprocessor And UDCs CA-Visual Objects 2.0 brings back one of the most popular features in the CA-Clipper language: the preprocessor. This is a powerful tool that can be used to not only migrate code from one to the other, but can make CA-Visual Objects conform to other languages, thereby extending the reach of this powerful 32-bit object-oriented language. ANSGAR TRIMBORN TS114SR -- Extending The Window Editor Thanks mainly to two simple text files, CAVOWED.INF and CAVOWED.TPL, the Window Editor becomes a highly customizable and versatile tool. This session shows you using hands-on samples how you can customize the Window Editor so that it meets you specific development needs. TS115SR -- GUIEx - Strong Typed GUI Classes The strong typed method support in CA-Visual Objects offer better performance and type checking. GUIEx is the name of a new GUI class library based on this new language feature. This session discusses the basic design and shows implementation details of GUIEx. ROBERT VAN DER HULST TC101SR -- Introduction To SQL Programming In CA-Visual Objects 1 And 2 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. TM104SR -- Using the DBFCDX Driver In CA-Clipper And CA-Visual Objects Both CA-Clipper 5.3 and 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.