One interesting thing about WordPad (at least from the Windows XP / 7 era) was that it supported the complete OLE2 / ActiveX stack.
This let you do all kinds of things like embed other types of controls (like canvases or images from Paint, or Excel tables) inside your document, and WordPad's UI would jump through all the hoops to update and transform into the embedded application's UI when that control gained focus. This made it a pretty useful testing app when I was interning at MS and working on embeddable Inking surfaces for Tablet PC. (Yes, I'm a dinosaur)
I have a story which predates WordPad, but concerns OLE support in it's predecessor Write:
At my secondary school, a long time ago now, they used PCs from educational vendor Research Machines (RM). These ran a locked down version of the Windows 3.11 Program Manager which didn't allow you to start any unapproved programs. I discovered you could embed EXEs from a floppy disk as OLE objects in a Write document and then start them from within Write by double clicking. In this manner, I could bring my LibertyBasic programs in from home and run them on the school's machines :-).
We also used PCs from RM at our secondary school in the late 2000s. At that time there was still a very similar exploit that allowed me to embed and run unauthorised programs inside of PowerPoint slide shows. Fun times.
Who can forget the first time they opened Wordpad and then tried to drag a text document into the window to edit it, just like you do with Notepad, only to have the text document turn into an icon inside of the empty text document you had open. Fun times.
"The WordPad sample demonstrates how to implement an application that imitates the functionality of WordPad, including the user interface elements and some of the capabilities."
I should have known it wasn't the real Win95 WordPad source code since this version is written using MFC and C++.
C++ was not an approved programming language for Win95 components in its quest to run on Brad Silverberg's (Win95 manager) mom's 4MB RAM PC.
One neat OLE object (btw this works even in Windows 10 - i don't know about 11) is the "package" which allows you to embed any file as an OLE object. So basically you can drop an image file, PDF, video, program or anything else in WordPad and it'll put an icon representing it that if the user double clicks it'd be equivalent to them doubleclicking a file.
Of course most of the time it isn't very practical (and WordPad chokes at anything above a handful of MB) since you're making a bad archive file (using the default .rtf format will encode the binary data in hex which will actually increase file size), but i always liked how general the idea was.
(also it isn't limited to WordPad but to anything that uses OLE - e.g. you could do the same with Delphi which has a "OLE object" control that can embed any OLE object and the object becomes part of the executable - so you could, say, throw a PDF file in a package OLE object in a form and when the user doubleclicks it the control opens the default PDF viewer)
Seems like the implementation was impractical, but it's basically what we do with Obsidian and any modern knowledge management software. Feels to me like it was ahead of its time.
OLE has always fascinated me. I’ve wanted to play around with it just to see what sort of cursed things I can do, but my eyes glaze over looking at WinAPI docs.
OLE isn't any more "malware riddled" than anything else you install on your PC, at its core it is just a fancy plugin system for embedding stuff in a document without the document editor knowing about it. OLE is as susceptible to malware as any other plugin system - in other words unless you somehow[0] install malware, you wont get malware.
[0] "somehow" here includes said malware taking advantage of unrelated security holes but this is true for everything, not just OLE
I'm always sad to see applications go (especially if the recommended alternative is a paid software), but did that thing ever work properly? In the past decade I used Windows only when someone held a gun to my head, but before that I remember that WordPad always messed up all documents I have ever opened: weird page and line breaks, picture and textbox formatting all over the place, and saving a document was a good way to prevent future reading.
I always figured this was by design. Microsoft needed a GUI word processor that was free to stifle competition in the new "windows software" market, but not good enough to upset their Word business.
Good job WordPad - one of the flag bearers of Microsofts anti-competitive business practices.
For Win95, the new included-in-the-box email client required a text editor which supported multiple fonts, colours, font styles, et al. But Microsoft Write code was not written to be modular and cross-platform (much of the Win95 email client code would also run on the Macintosh, for Mac OS System 7.x).
So the RichEdit windows control was created.
Wordpad.exe is a thin wrapper around the RichEdit control, like Notepad.exe is a thin wrapper around the text edit control.
1. Ship Word with Windows and not get paid for it, even though they had hundreds of engineers working on it.
2. Ship no word processor with Windows, and make the end user find one on their own.
3. Ship a basic one and let the user upgrade to Word if they needed something more.
At the time with option 2, it's not like you're going to hit google and download some FOSS solution - you would need to go to the computer store and pay $200 for something in a box off the shelf.
I'm thinking option 3 was a good middle ground, and a win-win for MS and the customer.
This is their strongest point. I still remember being able to install Microsoft Money 99 on a brand new Windows 10 for my uncle, without much difficulties.
> > Typing 'write' in the Run dialog still opens WordPad today
> pbrush also opens Microsoft Paint.
And in both cases, the reason was most probably backwards compatibility, so that programs which directly called WRITE.EXE or PBRUSH.EXE to open a file would keep working. Most of these are going to be 16-bit Windows programs (which AFAIK no longer work, unless you're still running a 32-bit build of Windows), or 32-bit Windows programs directly ported from 16-bit Windows programs (Microsoft designed the 32-bit Windows API to make it easy to have a single source code building both 16-bit and 32-bit versions of the same program, and to make it easy to adapt the source code from a 16-bit Windows program into a 32-bit Windows program; it was not unusual back then to offer both 16-bit and 32-bit builds of the same program, built from the same source code).
I don't have a reference for this but I remember reading that Microsoft had to create Wordpad from scratch because they lost the code for Write. I do remember that when they introduced Wordpad it was missing several features present in Write and a very visible one was justified text.
According to Murray Sargent's blog post on RichEdit version history, justified text was added to RichEdit in v3.0. The Win10 version of WordPad seems to support fully-justified text per paragraph.
Write had an interesting cursor with the vertical pipe line and something like an asterisk. I used it for a while on Windows 3.1 before someone set me up with a copy of MS Office 4.3.
Off topic, but I'm loving the Mac equivalent, TextEdit.
After trying every kind of fancy task management and note taking system from org-mode to Obsidian to Logseq, I now use a .rtfd (.rtf + images) on iCloud to act as a note-taking system / todo-list. I would have used pen and paper but I need to paste screenshots and URLs.
There's an iOS app called RTF Write for 99c. Now I always have my notes, tasks, and shopping, and above all, it's so simple and quick.
Yeah, the Cocoa text input system is very full-featured and TextEdit.app is basically a demo of it the way WordPad demoed the windows rich text editing component
For me, Notes tries too hard. The auto-heading of the first line of text, all the editing and markup options, the sharing, etc. are all more than I want, and they end up being distracting and getting in the way. My mind will easily wander to “what if I make all subjects this font and this color and bold etc.”, and then I lose the context of whatever I wanted to write down.
TextEdit, new .txt file, name it “{subject} notes.txt”, throw it in the “old notes” folder when it gets too unwieldy is the only notes workflow that I’ve found actually works for me.
If a day I decide to change note-taking app, I can do it by just opening it. With notes I have to figure out an export strategy and third-party export app.
There's something great about dealing with raw text files (and I say this as a happy Photos.app user)
This is the sort of non-consensual change that is the hallmark of proprietary software and drives me towards using free and open-source software every chance I get.
There are many arguments for FOSS. This isn’t one of them.
Plenty of open source apps are abandoned. The maintainers get tired, too busy, or whatever.
Few users, if any, are depending on this app that hasn’t been getting attention for years. There’s plenty of replacement apps as good or better, including FOSS ones.
If it was open source, the odds are no one would care to take over maintenance (though they could) since it’s basically redundant at this point.
On the contrary, the difference is precisely that an abandoned FOSS program can be picked up by someone else; that this ability is not always used is beside the point.
> Plenty of open source apps are abandoned. The maintainers get tired, too busy, or whatever.
Other people can pick up the baton. For example my window manager of choice is Window Maker which was abandoned for literally years (fortunately since the underlying tech doesn't change every other month, it still kept working) before someone else it picked it up and nowadays there are a few developers working on it.
> If it was open source, the odds are no one would care to take over maintenance (though they could) since it’s basically redundant at this point.
When Microsoft opensourced winfile[0] (the file manager from Win3.x/NT 3.x) some developers did flock to it (i personally even added a small feature to allow for multiple file masks which was merged), so i'm pretty sure the same would happen for an opensourced wordpad.
Microsoft did choose to open source WPF a few years back [0], but I don't fully remember the situation there. I remember hearing discontent about the decision on /r/dotnet.
The opposing reactions (discontent MS did open source something, discontent that they didn't) are odd. I don't fully remember the details there though so can't make a meaningful comment.
Cannot say if Notepad does it in recent versions, but on older Windows systems Wordpad was useful to quickly open texts made on Linux (with just LF instead of CR+LF) which in Notepad would show as uninterrupted.
But who uses RTF? I can't recall ever receiving an RTF file. Scanning my drives, I've only found a single Readme RTF file in some old Windows utilities.
I always thought the only common real-world use of RTF was as a clipboard format (rather than a file format), so you could copy and paste with bold and italics.
But then at some point I think that might have been replaced in practice with HTML as a clipboard format instead.
I'm not sure if you copy text from browsers or word processors today, if it's usually available as both RTF and HTML, or only one?
I haven't created an installer for a Windows desktop app in over 5 years, but it was a common format for the embedded EULA. It's not as important these days, but there was a huge file size difference between an RTF created in Wordpad vs Word.
Back in the day I worked on a desktop shell for senior accessibilty in .net (pointerware) & was tasked with creating a word processor. Went with richtextedit control to do most the heavy lifting, & included being able to forward rtf via email which would convert subset of rtf editor exposed to html
This let you do all kinds of things like embed other types of controls (like canvases or images from Paint, or Excel tables) inside your document, and WordPad's UI would jump through all the hoops to update and transform into the embedded application's UI when that control gained focus. This made it a pretty useful testing app when I was interning at MS and working on embeddable Inking surfaces for Tablet PC. (Yes, I'm a dinosaur)
At my secondary school, a long time ago now, they used PCs from educational vendor Research Machines (RM). These ran a locked down version of the Windows 3.11 Program Manager which didn't allow you to start any unapproved programs. I discovered you could embed EXEs from a floppy disk as OLE objects in a Write document and then start them from within Write by double clicking. In this manner, I could bring my LibertyBasic programs in from home and run them on the school's machines :-).
"The WordPad sample demonstrates how to implement an application that imitates the functionality of WordPad, including the user interface elements and some of the capabilities."
I should have known it wasn't the real Win95 WordPad source code since this version is written using MFC and C++.
C++ was not an approved programming language for Win95 components in its quest to run on Brad Silverberg's (Win95 manager) mom's 4MB RAM PC.
Of course most of the time it isn't very practical (and WordPad chokes at anything above a handful of MB) since you're making a bad archive file (using the default .rtf format will encode the binary data in hex which will actually increase file size), but i always liked how general the idea was.
(also it isn't limited to WordPad but to anything that uses OLE - e.g. you could do the same with Delphi which has a "OLE object" control that can embed any OLE object and the object becomes part of the executable - so you could, say, throw a PDF file in a package OLE object in a form and when the user doubleclicks it the control opens the default PDF viewer)
https://i.imgur.com/51BySZ0.png
[0] "somehow" here includes said malware taking advantage of unrelated security holes but this is true for everything, not just OLE
Good job WordPad - one of the flag bearers of Microsofts anti-competitive business practices.
For Win95, the new included-in-the-box email client required a text editor which supported multiple fonts, colours, font styles, et al. But Microsoft Write code was not written to be modular and cross-platform (much of the Win95 email client code would also run on the Macintosh, for Mac OS System 7.x).
So the RichEdit windows control was created.
Wordpad.exe is a thin wrapper around the RichEdit control, like Notepad.exe is a thin wrapper around the text edit control.
1. Ship Word with Windows and not get paid for it, even though they had hundreds of engineers working on it.
2. Ship no word processor with Windows, and make the end user find one on their own.
3. Ship a basic one and let the user upgrade to Word if they needed something more.
At the time with option 2, it's not like you're going to hit google and download some FOSS solution - you would need to go to the computer store and pay $200 for something in a box off the shelf.
I'm thinking option 3 was a good middle ground, and a win-win for MS and the customer.
Dead Comment
Typing 'write' in the Run dialog still opens WordPad today. They kept the alias for 28 years.
> pbrush also opens Microsoft Paint.
And in both cases, the reason was most probably backwards compatibility, so that programs which directly called WRITE.EXE or PBRUSH.EXE to open a file would keep working. Most of these are going to be 16-bit Windows programs (which AFAIK no longer work, unless you're still running a 32-bit build of Windows), or 32-bit Windows programs directly ported from 16-bit Windows programs (Microsoft designed the 32-bit Windows API to make it easy to have a single source code building both 16-bit and 32-bit versions of the same program, and to make it easy to adapt the source code from a 16-bit Windows program into a 32-bit Windows program; it was not unusual back then to offer both 16-bit and 32-bit builds of the same program, built from the same source code).
see https://web.archive.org/web/20070306114503/http://blogs.msdn...
After trying every kind of fancy task management and note taking system from org-mode to Obsidian to Logseq, I now use a .rtfd (.rtf + images) on iCloud to act as a note-taking system / todo-list. I would have used pen and paper but I need to paste screenshots and URLs.
There's an iOS app called RTF Write for 99c. Now I always have my notes, tasks, and shopping, and above all, it's so simple and quick.
TextEdit, new .txt file, name it “{subject} notes.txt”, throw it in the “old notes” folder when it gets too unwieldy is the only notes workflow that I’ve found actually works for me.
But you can have multiple notes, and as soon as there are lots of notes to look at, I won’t do it every day.
With my .rtfd file, there is only one file with one todo list, and that’s it. I can never lose it or get lost in it, or spend time finetuning it.
There's something great about dealing with raw text files (and I say this as a happy Photos.app user)
I love WordPad's simplicity, and I'll miss it.
Plenty of open source apps are abandoned. The maintainers get tired, too busy, or whatever.
Few users, if any, are depending on this app that hasn’t been getting attention for years. There’s plenty of replacement apps as good or better, including FOSS ones.
If it was open source, the odds are no one would care to take over maintenance (though they could) since it’s basically redundant at this point.
Other people can pick up the baton. For example my window manager of choice is Window Maker which was abandoned for literally years (fortunately since the underlying tech doesn't change every other month, it still kept working) before someone else it picked it up and nowadays there are a few developers working on it.
> If it was open source, the odds are no one would care to take over maintenance (though they could) since it’s basically redundant at this point.
When Microsoft opensourced winfile[0] (the file manager from Win3.x/NT 3.x) some developers did flock to it (i personally even added a small feature to allow for multiple file masks which was merged), so i'm pretty sure the same would happen for an opensourced wordpad.
[0] https://github.com/microsoft/winfile
But even if that was not the case, it is a change in a user's workflow that they did not request.
Is this a high bar I have set for the developer? Yes, perhaps it is.
And yet I believe in it and stand by it in my projects.
I consider it my responsibility to accommodate the user, and not the other way around.
Deleted Comment
The opposing reactions (discontent MS did open source something, discontent that they didn't) are odd. I don't fully remember the details there though so can't make a meaningful comment.
[0] https://www.zdnet.com/article/microsoft-told-were-not-happy-...
With proprietary software, the option of forking does not exist.
https://devblogs.microsoft.com/commandline/extended-eol-in-n...
Even worse was how resizing the notepad window would introduce newlines into the text if you saved it.
There are texts I don't want to write in a browser
If it doesn't have rich text support, isn't lighter than anything in the OpenOffice family, and is as unstable as AbiWord, don't bother saying it.
But then at some point I think that might have been replaced in practice with HTML as a clipboard format instead.
I'm not sure if you copy text from browsers or word processors today, if it's usually available as both RTF and HTML, or only one?