Most of us who have had the privilege of reviewing Microsoft Office 2001 GM agree: It’s cool. While many of us are still overcoming the shock and horror of having come to that conclusion about Microsoft Office of all things (I hear stories of one reviewer who slipped a bag over his head and flagellated himself for three days chanting, “Mac is the Way, I shall follow the Way”), the remainder of the intrepid band of testers immediately began playing with Office in ways completely unsuitable for most reviews. As one of those testers, I have a proposition.
“But this is Office,” you might be saying. “How can one possibly hope to hack into such a large, Microsoftian program?” Well, it’s simple really. Office, like most megalithic software products, makes ample use of software libraries. Libraries (also known as shared libraries) are essentially chunks of code saved as separate files that any application can access at any time. This means that, for example, instead of telling each of the four Office applications how to build a toolbar, that information is stored in a library accessible to any program that needs it. Previous versions of Office used libraries, too; the maladjusted Word 6 for Macintosh package stuffed the Extensions folder with oodles of them. The difference in Office 2001 is that these libraries now use Mac resource forks to store information, rather than simply kludging over the Windows code. The end result of this change is that now users can, with a copy of ResEdit, a little skill, and frequent sessions of prayer to the Mac gods, change these resources to do things to Office that really shouldn’t be possible according to Microsoft.
Before we begin, let me speak for a moment about ResEdit. ResEdit is a very old and very powerful program made by Apple for developers. The name stands for “resource editor”, which is precisely what ResEdit is all about. ResEdit is free, and is freely available from sites such as ResExcellence, but it comes with no warranty. Once you venture into the world of resource editing, you’re on your own, and no one pretends it’s impossible to destroy a file by accidentally changing a resource you didn’t mean to change. Therefore, there are a few rules to live by in the art of ResEdit:
- Never, ever open the only copy of a file on your hard drive in ResEdit. Always create a copy first by Option-dragging the file to a new location.
- Similarly, never edit files that are open or being used. If you follow rule 1, this shouldn’t be a problem, but be especially careful with shared libraries – they call them “shared” for a reason.
- Try not to significantly alter the size of a file. Replacing a 16×16 pixel icon with a 64×64 pixel icon will produce unpredictable results, and that’s the best-case scenario. Programmers don’t plan for the contingency of people mucking around in their resource forks (which is why this is such a good initiation for a Microsoft product claiming to be Mac-like), and if you run across a piece of lazily written code it’s quite possible to ruin the entire application. Did I mention you should always work with a copy?
All right, so now you know what not to do when dealing with ResEdit. It’s time to get to work.
Hack 1: The Toolbars
I doubt I was the only one puzzled by Microsoft’s new toolbar options. We can either use our Appearance theme settings and deal with Microsoft’s standard invisible-until-you-mouse-over-them toolbar buttons, or use the “Office 2001 Appearance” and get spiffy new Aqua toolbars and odd, white, rounded rectangles for toolbar buttons. Surely there must be a happy medium here. Well, there is, but don’t bother looking around the Preferences panel for it. You’re going to have to make your own.
The Office suite stores the information on how to make a toolbar in the Microsoft Component Plugin library, located inside the “Office” folder within the main Microsoft Office 2001 folder. Make a copy of this file and open the copy with ResEdit. You should see something that looks similar to this:
There are two resource types we’re concerned with here. One is the “cicn” (color icon) resource, and the other is the “ppat” (p-p-p-p-p-p-pattern, folks) resource. The first one we want to edit is the ppat resource, so double-click on that. There’ll only be two resources in here: ID 700, and ID 701. Resource 701 will show up as an icon sporting random ones and zeros: This means that the ppat is not of a standard size, and therefore ResEdit can’t open or see it. That’s all right, though, since the one we’re concerned with is number 700.As you can probably tell, ppat ID 700 contains the background texture for the toolbar, currently a happy Aqua ribbed texture. Double-click on the resource to edit it, and change it to whatever you like. You can use the color picker or ResEdit’s built-in 256-color palette, whichever you prefer. If you’re looking for that familiar Platinum color, you’ll want 87% of all three colors, red, green, and blue, in the color picker. Don’t worry about drawing in the beveled edges of the toolbars, because Office will do that for you. Once you’re done with your gentle ministrations, close the editor window and save the file.
Our next step will be to change the actual toolbar buttons, to get rid of those weird rounded rectangles. You could conceivably leave them if you like. If you’re like me and find them just plain bizarre, though, close the ppat resource window and double-click on the cicn resource to open it. You’ll see a whole bunch of cicns, containing various sizes and shapes of the toolbar buttons, as well as a little light bulb icon we can leave alone for now. Open the first cicn, ID 300, and draw in your button’s clicked (depressed) appearance. Be as creative as you like, but if you’re using a texture (like more Aqua ribbing) be warned that there’s no way to line it up with the background. Office will tile the inner parts only, meaning that depending on the height of the button, your texture might look mighty strange. Anyone who’s made schemes for Kaleidoscope 1.x will understand this problem. It’s best to stick to a solid color for the interior of the button, and show your creativity around the edges. Keep in mind that there is no resource for a toolbar button that’s not being moused over or selected – these will always be flat, and unfortunately this is hard-coded into the application so it cannot be changed.
Once you’re done editing the button’s depressed state, drag your icon on the right hand side of the editor down to the mask. This will get rid of the rounded corners on your icon and fit them to the edges of the icon you just drew instead. After you’re done there, select your icon in the editor using the Select All command and copy it. Then close the editor and open the next icon, ID 301. Paste in the icon, and move it to the left until it’s centered and no bevels are visible on the left and right sides. This will be the region that is stretched by Office, so make sure each column of pixels looks the same as the ones beside it or it’s bound to look a little odd. Do the same thing with the icon next to it (ID 302), but this time prepare your icon to be stretched vertically rather than horizontally. Then, in cicn 303, create a small version of your original icon in its entirety. Shape the mask to fit the icon as you did before, and copy it to the next two icons to get the stretchable regions. You’ll need to edit the icons this time rather than just centering them, to make sure you don’t have any bevel effects on two of the four sides. Make a mid-sized version in cicn 306, and repeat the steps above to transfer it to the two icons after it. Now you’re ready to move on to the mouseOver state, which is the way the button looks when the mouse passes over it but has not clicked. Create this state in icon 307, and follow the same procedure as above to create the various stretchable regions and alternate sizes for that state as well.
You may find yourself wondering what the last eight icons, from 320 to 328, are for. Office toolbars actually have two pressed states: One they adopt when the mouse is actually pressing them down, and another they take on after the mouse has let up but toggled them onto an “on” state. An example of this would be the “Bold” style button. When the mouse is pressed on the button, it takes on the depressed state. When the mouse is released, it adopts the selected state to show that any text now typed will be in bold. Icons 320 through 328 control the selected state, which you can specify the same way you did the other two states. If you’re getting lazy after all this editing, it’s alright to just copy and paste the depressed state icons and use those for both. If you want to be extra stylish, though, make the selected appearance a slightly different shade than the depressed one.
With all that work accomplished, you’ll definitely want to save the file. Remove the original from the Office folder and put it in a safe place. Don’t delete it! You might need it again later. Rename the file you just edited to “Microsoft Component Plugin” if you changed the name before, and place it in the Office folder. Start up one of the four Office apps (yes, this hack even affects Entourage!) and take a look at your handiwork. If the toolbars don’t seem to be adopting your changes, make sure the Appearance tab of the Customize dialog (available from Tools > Customize.) is set to use the “Office 2001 Appearance”.
Hack 2: The Splash Screens
If Microsoft was trying to make us believe it had a good sense of style, the splash screens must have been some sort of reverse psychology, because they’re singularly ugly. Fortunately, you can change them. Here’s how: In each of the four Office applications, there is a PICT resource (a picture, obviously) containing the splash screen image. The resource ID depends on the application; in Entourage, it’s ID 128; in PowerPoint, 223; in Excel, 1992; in Word, 1995. Each of these graphics are exactly 452×248 pixels in size, and with the exception of the registration information, which appears in white text in the upper-right hand corner of the splash, you’re essentially free to paint whatever you like. You can either save your replacement as a PICT resource (both Photoshop and GraphicConverter support this) or you can simply select the picture and paste it into the resource fork of the program you’re editing. Make sure you give it the correct ID, though, or it won’t work.
If you don’t feel like making your own splash screens, I’ve made my own set and sent them to the aforementioned site, ResExcellence. They’re taking their time getting up there, but with a little luck they’ll be on the site about the same time you’re reading this. They are, naturally, free.
Hack 3: The Icons
A little while back, right after Outlook Express 5 was released, I made a whole slew of replacement icons for it. You see, I’m a human interface designer, meaning one day I hope to be paid large sums of money for being very anal about things like GUI consistency, look-and-feel, and dialog layouts. Steve Jobs, I hear, hates human interface designers with a rampant passion. Anyhow, I uploaded these replacements to ResExcellence along with a not-very-merciful note expressing my opinion of the icons included with OE5. Among the many icon decisions which felt my wrath were the fact that the icons representing messages were purple rather than yellow, the icons representing news articles were yellow rather than white, and the folders used within Entourage were both purple and yellow, rather than the default blue. The problem, I explained, was that Apple uses yellow envelopes to represent mail and email throughout the OS, including in the Mail shortcut application included with every copy of OS 8 and OS 9. They also use a white newspaper to represent news articles, as can be seen in the system icon for a news server. The wonderful folks at IconFactory, who made the icons for Outlook Express as well as for Office 2001, were understandably a little confused about why I only changed some of their icons and not all of them, but after I explained to them my reasons for changing the mail and news icons, they dropped out of touch. I sometimes wonder, though, whether it’s purely coincidence that the icons for mail messages in Entourage are yellow envelopes, and the icons for news articles are white newspapers…
Even with my only beefs about the icons gone, I find it impossible to leave well enough alone, and decided to play around with some of the other icons (such as the two-tone folders, which are really quite stylish, but I prefer my folders blue). Surprisingly, they’re not in Entourage’s resource fork where you’d expect them to be. Instead, they hide in another shared library, the “Microsoft Framework 2001” file which also inhabits the “Office” folder. They’re “ics8” resources (the name stands for icon, small, 8-bit). This is another type ResEdit can edit natively, so just double-click them and edit to your heart’s content. Keep in mind that unlike the cicns we were editing before, you can’t use the color picker on ics8 resources – you have to use the 256-color palette instead.
Oddly, the toolbar icons for the other three Office applications are nowhere to be found. It’s possible that they’re hard-coded into the data forks of the files, or they just may be in some file I haven’t managed to poke around in yet. If you have a copy of Office 2001 and know where these icons are, please let me know.
Hack 4: The Sounds
For whatever reason, Microsoft decided the Appearance-level sound sets many Mac users choose to use just aren’t enough to appropriately describe the experience of clicking a button or opening a window, and added its own sound set to Office. Unlike the Entourage sound sets, however, these sounds are not customizable. They’re either on or off (you can turn them off, if you search hard enough: Uncheck the “Provide feedback with sound” checkbox in the General tab of the Preferences dialog). But what if you like the idea of a custom sound set for Office, but don’t like the sounds they’ve chosen? Or what if you want sounds for some events, but not others? Well, what have we been doing for the past four pages? Hack it!
Hacking the Office sound set requires a trip to yet another shared library, again in the “Office” folder. The file we’re looking for is aptly named “Microsoft Office 2001”. Make a copy of it, and open the copy in ResEdit.
As you’ll probably guess, the resource we want to edit is the “snd ” resource. Double-click on it and you’ll get a list of sounds, named in plain English by the programmers. How thoughtful. You can try any of these sounds by selecting one (or more) and pressing Command-T, or by choosing “Try Sound” from the “snd” menu. A little experimentation will show you something interesting: The “ToolbarFocus”, “ScrollBar”, and “Cut & Clear” sounds all seem to be completely silent. They also all have a size of 47 bytes. Since mousing over a toolbar, clicking a scrollbar, and cutting/clearing text are all silent actions, it stands to reason that these are “filler” sounds. This has interesting possibilities, because replacing the “ToolbarFocus” snd with another (non-silent) snd made for a pretty cool, if predictable, effect. You can also go the other way: If, for example, you like the click sound of opening windows but absolutely despise the chain-dragging-over-carpeting sound that marks an Undo, simply delete the sound, copy and paste one of the blank sounds, and change the ID and name (using the Get Resource Info…” menu item) to match the one you deleted. Rename the file to “Microsoft Office 2001”, start up Office, and you’ll never have to deal with the Undo sound again.
Because Office 2001 is so new, and because the sound set implementation requires ResEdit to alter, there are no known “Office sound sets” on the Web today. They would be rather simple to make, however, and once Office 2001 is in wider use I’m sure many will be created. Remember, you heard it here first.
Random Bits of Coolness:
While you’re shuffling around in Office’s digital attic, you’re bound to find a number of interesting things. One concept you should have picked up is that Microsoft is horribly redundant, and not at all conscious of keeping file sizes down. Most of the resource fork of Internet Explorer is duplicated in the “IE 5 Control for Office” library, several copies of splash screens and icons from the Installer VISE (which you might not even have used to install Office to begin with) are scattered throughout various libraries, and many internal resources common to Excel and PowerPoint are stored within the files themselves rather than placed in a library. This should give you a bit of insight as to how Microsoft thinks. In a few cases, though, this mentality leads to some interesting bits of duplication, out-of-context resources, or just plain cool stuff. Here are a few examples:
PICT ID 128 in the “IE 5 Control for Office” file shows a splash screen for Internet Explorer 5 that looks a little different from the one that shipped. If you thought the original IE splash looked a bit too unprofessional, you might like this one better. Oddly, it’s not the same pixel size as the regular IE splash screen, but with a little help it could become a replacement.
Want to see some ugly Windows icons, including the manila folder, hard drive icon, and generic document icon? Open the “Microsoft Office 2001” library and take a look at the “icl4” and “ics4” resources (there’s no 8-bit version). As I’ve long suspected, Windows 95 icons can only go as high as 16 colors! Say it with me now, folks: “Eeeewwwwwww!”
Also in the “Microsoft Office 2001” library are a number of interesting PICT resources. Among them are several textures used within the Office suite, stored as grayscale representations. Paste these into Photoshop, and they might just be useful. (This is actually a pretty good implementation on Microsoft’s part, but it’s too cool not to mention.
Microsoft seems to stand by the tried-and-true INI file format from the DOS days to perform many functions in and around Office. This is a pretty poor implementation, since INI files are text and have to be parsed by the program every time they’re used (whereas resources are random-access, and don’t have to be read from the beginning), but their textual nature does make them very easy to edit. For example, open the “Holidays” file (inside the Office folder) with a text editor, like BBEdit or Tex-Edit Plus. (SimpleText won’t work because the file is too large for it to handle.) You’ll see that it’s a rather simple text file, containing lines like this:
[United States] 138
The phrase within the brackets represents an item in the “Import Holidays” window within the Preferences dialog of Entourage, which allows you to customize the holidays that appear on your calendar depending on which country or countries you live, work, or just have an interest in. What if your country isn’t listed, though, or you belong to a religion that celebrates holidays all its own? Or what if you only want to have some of the officially recognized holidays show up on your calendar, and not all of them? Well, you can add to the Holidays file simply by typing new lines somewhere inside it (preferably in alphabetical order, since Entourage doesn’t bother to sort the list when it’s parsing the Holidays file). You’ll have to enter in every single occurrence of the holiday you wish to see on the calendar, because the program isn’t smart enough to figure out that they should happen every year. All the included holidays only go up to 2005.
The number beside the country name represents the number of individual holiday entries to be imported. Remember, Microsoft products are usually stupid: Get this number wrong, and odd things will happen.
Well, that about does it for all the hacks I’ve had time to find so far. If you have anything to add, feel free to email us and let me know! Good luck, and remember, this is an initiation: Show no mercy!