Jeff Brown
Rafael M. Muñoz
Microsoft Corporation
April 25, 1997
The following article was originally published in the Site Builder Magazine (now known as MSDN Online Voices) "Web Men Talking" column.
Contents
Pony Express - Microsoft Outlook 97 and Outlook Express
Show me the money! - Banner ads on Web sites
In the eyes of the beholder - Creating transparent GIFs
Where is dBase-ment? - Accessing databases with Visual J++
A one-stop shopping extravaganza - Hardware needs for Internet Service Providers
Hey, let me in! - User authentication for Web pages
Staying organized - Using tab controls to manipulate frames
The Web Men are back, with cool answers to your most puzzling 'Net questions. And guess what? Beginning with this installment, the Web Men plan to bring you a new column every two weeks, instead of monthly. Look for the next column on May 12!
Can you believe it? They get paid to do this -- read e-mail and answer questions.
This time, our riders of the cyber sage deliver helpful tips on messaging in Outlook Express, transparent .GIFs, dBase connectivity, and more. Be sure to check out their slick little tabs sample.
Dear Web Men:
Please tell me there is a way to make Outlook Express and Outlook 97 share the same address book and message folders. PLEASE! If it is there, I cannot find it.
Mark T. Butler
The Web Men reply:
Oh, what happened to the good ol' days of the American West, when we had the Pony Express? The fresh air, the dry dust blowing in the face of the swift Pony Express rider, the bugs in his teeth, the chew in his lip. Wow, sounds like the same scenario some of our friends paint when riding their Harleys.
Mark, thanks for your question, and here we delve into our first query concerning Internet Explorer 4.0 , with many more to come in the future. You want to share address books and message folders between Outlook 97 and Outlook Express ? Unfortunately, this is not currently supported. You can, however, import/export these items between both applications.
Let's take a look at what's involved and the pitfalls one can encounter in the process. Importing and exporting an address book can be done through either the Windows Address Book or Outlook Express; only Outlook Express can be used to import or export message folders.
From the Windows Address Book, select the Tools.Import.Address Book menu option, which will bring up the Windows Address Book Import Tool dialog. From here, you can import a variety of address books -- one of which is your Microsoft Exchange (Outlook) Personal Address Book. To bring up the Import Tool dialog with Outlook Express, select the File.Import.Address Book... menu option. After you select the Microsoft Exchange (Outlook) Personal Address Book, you will be given the choice of Exchange profiles from which to import the address book, if you have multiple profiles.
Exporting is a little trickier. Select the Tools.Export.Address Book menu option from the Windows Address Book or the File.Export.Address Book menu option from Outlook Express; both options will bring up the Windows Address Book Export Tool. You will be given the choice of exporting to a Microsoft Exchange (Outlook) Personal Address Book or a Text File, which will separate the values by commas. Again you will be given the choice of Exchange profiles to which to export the address book information. Alright, we were just kidding about the trickier part.
To import message folders, select the File.Import.Messages... menu option from Outlook Express, which will bring up the Import Messages dialog. Here you have the option of importing from "Eudora Pro or Light (through v3.0)," "Microsoft Exchange or Outlook," or "Netscape Mail (v2 or v3)." Select the Microsoft Exchange or Outlook option. You are again given the choice of Exchange profiles and then a list of the message folders that are currently being using for that profile. You can choose to import all or a selection of these folders.
Exporting message folders from Outlook Express will only export to Microsoft Exchange or Outlook. Choose the File.Export.Messages... menu option in Outlook Express. You are once again given a profile choice (do we see a trend going here?) and then a list of current message folders being used in Outlook Express. Again, you can choose to export all or a selection of these folders.
Simple enough, but we must warn you of one pitfall when importing or exporting message folders. The importing and exporting of message folders is a complete copying process that does not check for duplicate messages. Should you want to update a message folder in Microsoft Exchange or Outlook from a folder in Outlook Express, all current messages that exist in both folders are just duplicated in the import or export process. Please keep in mind that we are working with a beta product here.
One last thing: You really need to be using only Outlook Express or Outlook 97. If you already have Outlook 97, you have a great e-mail product. But if you are just getting established on the Internet, and have not yet purchased Outlook 97 or another e-mail product, Outlook Express will work fine.
Dear Web Men:
Saw your Web site at Microsoft and decided to try it out. I've seen a lot of sites that have rotating banners (GIFs) for ads. Is there a good program out there already for implementing and tracking this? I'm using Windows NT Server 4.0 with Internet Information Server 2.0 and FrontPage 97 as an interface. Please let me know how's it's done. Thanks.
Brian D. Smith
The Web Men reply:
We both know you are not Tom Cruise, and cant rely on multi-million-dollar deals for starring in movies like Jerry Maguire. Displaying advertising on your Web site is definitely one way to rake in some extra cash.
You can get the effect of rotating banner ads on your Web site in a variety of ways. On the Microsoft site, particularly the default page, many of the ads are just animated GIFs. Collections of GIF images are displayed one after another in an animation. To assemble an animated GIF, you can use the Microsoft GIF Animator, or one of the many other tools out there.
If you want to use a pre-built ActiveX control for displaying banner ads, you can go to one of the ActiveX sites listed on the MSDN Online Technology Sites page. The Billboard control from NCompass Labs, Inc. is a good example.
But if you want to control things from the server, and since you are already using Windows NT Server 4.0 and Internet Information Server (IIS) , you can accomplish this with powerful results by using Active Server Pages (ASP). ASP includes the Ad Rotator component, which can display different ads whenever a user visits the page. You can give weighting to ads, specifying how often they should be displayed relative to one another. Using ASP and the Ad Rotator also makes it easy to track the number of clicks on each ad.
However, before you get going with ASP, you need to upgrade to IIS 3.0, as ASP is not available in 2.0. To upgrade, download version 3.0 by going to the Internet Information Server home page , or better yet, you can download and install Service Pack 2 for NT. It includes IIS 3.0 and ASP. Go to the Service Packs page to download Service Pack 2.
Now, back to the Ad Rotator component. We have put together some pages as a simple demonstration of the Ad Rotator, including both animated GIFs and normal GIFs for the ads. For the purposes of the demo, the page with the ad contains the META HTML tag, which tells the browser to automatically reload the page every few seconds. The purpose of this is to save you from having to manually refresh the page to see the different ads (keep in mind that with the Ad Rotator component, the ad will not change until the user refreshes the page). Using the META tag this way is not something you would normally do on your pages.
For more information on ASP and the Ad Rotator, check out the ASP Roadmap and the Adventure Works sample that come with IIS 3.0. You can get to the Roadmap by going to the IIS folder from the Programs menu in Windows.
Dear Web Men:
Hi. In the one reference to transparent .GIFs that I have been able to find, I was unable to find the proper code for doing this. I have found a reference saying that it can be done, but not how to do it. Is this an HTML tag? My understanding of this is that the browser is instructed to render the image with the specified color transparent. Is this correct? I find it very difficult (not to mention time consuming) to try to manually blend in an image with the background. Any information on this would be appreciated.
Andy Cooper
The Web Men reply:
Ah, the world of art. Wasn't it Picasso who said, after looking at one of his paintings, "I painted what?" Yes, Andy, art is in the eye of the beholder -- or in our case, across the background of our Web page. The world of creating transparent GIFs has become extremely easy with most of the major graphic software packages. In fact, Microsoft just released its image composition package, Image Composer .
Other software packages (shareware and freeware types) can easily manipulate your graphics. In fact, some online services will manipulate your graphics for free. You just point them to where your graphics are located and tell them what you want done. Also visit Yahoo! and search on "transparent graphic." This will provide you with a numbers of places to check out.
As for Image Composer, it allows you to create or take an existing GIF file and create a transparent GIF. To demonstrate how easy it is, we took a picture and created an impressive transparent GIF that everyone is encouraged to use with his or her next Web page. Using Image Composer, we saved our JPEG-format picture as a GIF file. Then we selected the Tools.Warps and Filters menu option to view the Warps and Filters dialog box. In the dropdown listbox, we selected Color Enhancement, and selected Wash from the options that appear below the dropdown listbox.
From there, we washed out some of the color in our picture -- or simply stated, lightened the pixels, which caused picture to become transparent or appear faded. In more technical terms, we changed the opacity or percentage of the alpha channel mixed in the colors of the image, thereby creating a more transparent GIF. (You gotta love formal documentation.) We then created what could be considered the best-looking Web page background we have seen in while.
Dear Web Men:
I looked around in the documentation of the Microsoft Visual J++ package and couldn’t find any information for accessing database files, like dBase (.DBF) files. I would appreciate it if I could see an example.
Sinan Tuncer
The Web Men reply:
From your question, we don’t know whether you have the Trial Edition or the Professional Edition of Visual J++, so we’ll answer for both.
Those of you who do not have either version of Visual J++ can download the Trial Edition, which is available free to members of MSDN online. Go to the Visual J++ Start Page for more information. (If you're not yet an MSDN Online member, take this occasion to become a Guest Member.)
You can use Remote Data Objects (RDO) to access dBase files from a Java application built with Visual J++. RDO is a group of Component Object Model (COM) objects that allow applications to interact with ODBC data sources.
However, you cannot access dBase files with the Trial Edition. The dBase ODBC driver is available only in the Professional Edition, along with ODBC drivers for FoxPro, SQL Server, Paradox, Microsoft Excel, and Oracle. So if you have the Trial Edition, you need to upgrade to the Professional Edition to develop applications that use dBase files.
If you have the Professional Edition, you first need to register a data source name for the dBase files. This is done by going to the Control Panel and running the ODBC applet. Choose to add a new data source, select the Microsoft dBase Driver, then enter a data source name -- and a description, if you want one -- and then select the directory where the .DBF files are located. (To select the directory, you first need to uncheck Use Current Directory.)
Now you can use the Database Wizard for Java included with Visual J++ to generate a project for accessing the database. This wizard will generate all the source files for a complete Java project that can browse, update, delete, and add new records to the database. The project can run as a Java applet in a browser, or as a stand-alone Java application.
To run the Database Wizard in Visual J++, choose File.New, and select the wizard from the Projects tab. In Step 1 of the Wizard, you need to specify the data source you want to access. Because you access dBase files through RDO/ODBC, select RDO and the data source name you used when registering the dBase files. Go through the other three steps to select the tables and fields you want to access, and you will be all set to build and run the project.
For more ideas on developing RDO applications with Visual J++, check out RDOSample, which is one of the Microsoft samples included in the Professional Edition. The RDOSample files can be copied from the Visual J++ documentation.
Dear Web Men:
Hello Guys;
What kind of hardware does someone need to start an Internet Service Provider business. I have searched almost the entire Web for information on what kind of hardware I need. I am thinking about starting a home-based business -- a small one anyway -- so if you men have any idea, please leave me a message.
Talk to you later.
David
The Web Men reply:
Gee, David, you searched almost "the entire Web?" You've been busy! And without getting what you wanted -- bummer. But that's what we're here for: a one-stop site to find it all -- somewhat like one of those strip malls shooting up everywhere. We have found two places that could be very helpful as you start looking into your new business.
The first, which we feel is the best, is MSDN Online Voices column by our very own Mary Haggard. (Of course she's the best; she's a colleague and a buddy.) Mary's column, For Starters, provides you with on-going information related to Web development. Her second installment, Get Your Server Here!, contained information on hardware and software needs for getting your server up and running.
A second source of information is MIND , the Microsoft Internet Developer magazine. From the main site, follow the "Back Issues" link on the left and find the February 1997 issue. here you will find the beginning of another series of Web development articles, "The Site Building Series," by Jason and Ted Coombs. The bi-monthly series continues in the April 1997 issue, and it's definitely something to watch for.
Both of these sources should get you on your way to becoming one of the top Internet Service Providers around. Good luck.
Dear Web Men:
I want to know how to put a password screen in my Web page, or a small password dialog box prompting the user to enter in a user name and password in order to view the page. Can Internet Explorer 3.x support that and how do I do that?
Mike Pereira
The Web Men reply:
Yup, Internet Explorer can display a password dialog and supports user authentication. But because the pages reside on the Web server, the work of deciding who gets access is actually done by the Web server. The browser just transmits the user and password information. It is up to the server to decide what to do with it. And there are several approaches you can take.
Internet Explorer supports both Basic and Windows NT Challenge/Response authentication. With Basic Authentication, a dialog will be displayed if a user attempts to access a page to which he or she has not been given rights. With Windows NT Challenge/Response, no dialog is displayed because the browser automatically sends the Windows user information to the Web server. But, as we mentioned, user authentication is highly dependent on the server; Windows NT Challenge/Response is only possible when using Internet Information Server (IIS).
One approach that will work regardless of the Web server being used, and will bring up a dialog, is to set up access rights for certain users on the server and ensure that Basic Authentication is enabled (assuming the Web server supports Basic Authentication).
If you are using Internet Information Server, you can find out more about setting up user authentication in Chapter 5 of the IIS online documentation, Securing Your Site Against Intruders. You should also refer to the Microsoft Knowledge Base article, IIS: Authentication & Security Features.
Another approach to handling users and passwords is to maintain a database of users and passwords accessible by the Web server, and use an Active Server Pages (ASP), ISAPI, or CGI application on the server to validate the user. That is how we screen user access to member-only areas here on the MSDN Online Web site. The MSDN Online Log On page has a normal HTML form on it that submits the member ID and password to an ASP page. The ASP page then queries the MSDN Online member database to see if the user is in fact an MSDN Online member. If so, it allows the user to access member-only pages.
Setting up a secure Web site can get very involved. But hopefully we have given you some ideas to go on.
Dear Web Men:
Hi Guys!!
Here goes: I want to insert a tabs control at the top of a page with tabs for each of our major products. This I have been able to do with a layout control. Now I want to have each product page load when the corresponding tab is clicked. Simple enough, I guess; however, I cannot figure out how to link the tabs to the pages! Also, do I need to include the control on each of the pages? Or should I set it up as a two-frame page with the control on top and the pages loading into the lower frame?
I know there has got to be a very easy, basic answer to this, but I'm stuck!!
Thanks for all the help and support everyone at MSDN Online has given all of us members.
Thanks,
Ed & Mary O'Brien (MSDN Online Level 2 members)
The Web Men reply:
Ah, two of our very own Level 2 members, whom we have seen taking advantage of the private technical newsgroup, and now taking advantage of our awesome column (spoken humbly, of course). Your idea is great, and we think it adds a lot to the organization of the page (something sorely lacking on many a Web site).
When we saw this question, we thought it just oozedorganization and neatness. You created a tab control using the ActiveX Control Pad? For those of you who don't know how to use all the features of the ActiveX Control pad, you can link to the tutorial from the ActiveX Control Pad page.
We actually used Visual Interdev to create the tab control and our sample, but either will do the trick. (Oh, can you tell one of us is a big fan of volleyball? You'll have to pardon the volleyball lingo on the control!)
After we created the control, we brought up the Script Wizard and added the following Visual Basic Scripting Edition (VBScript) code to the newly created tabstrip Click() event:
Sub TabStrip1_Click(Index) Select Case Index Case 0: parent.frames("src_target").location.href="pass.htm" Case 1: parent.frames("src_target").location.href="set.htm" Case 2: parent.frames("src_target").location.href="spike.htm" Case 3: parent.frames("src_target").location.href="dig.htm" End Select
We then created our main page, which we split into two frames -- with the new tab control on the top frame, and the second frame, which we called "src_target," containing the pages that correspond to each tab.
The Index parameter in our TabStrip1_Click() event corresponds to the tab that has been clicked and has a value starting with 0, which corresponds to the left-most tab, "Pass." Once we click on a tab, we drop down to the case statement. Starting with the parent object, or main browser window, and moving down through the frames object to the location object and setting the HREF property to the page that we want displayed in the second frame, "src_target." We could just as well have used the index value of our frames in the frames array, the top frame being "0" and the bottom frame, "src_target" being "1."
You can see that we suggest using your second idea, which involved frames. If you were to use the full page with the control on the top to load each complete page, then, yes, you would have to add the control to each page -- and that's just not as slick! With the tab control in the top frame, we only load that frame once and just reload the second frame any time a tab is clicked.
That's it for this installment. Remember to start looking for a new column from the Web Men every other week in MSDN Online Voices!
Jeff Brown, when not forcing family and friends to listen to Zydeco and country blues music, provides technical support for the Microsoft MSDN Online with a smile.
Rafael M. Muñoz (the even bigger smile above) is a part-time Adonis, and full-time support engineer for Microsoft Technical Support. He takes it very, very personally every time you flame Microsoft.