Start working on the MS Works Portfolio
This commit is contained in:
parent
a011cd8b47
commit
a0980e69c2
|
@ -14,19 +14,10 @@ I am for now focusing on Microsoft Works 8.0 and 9.0, as 8.0 is the last version
|
|||
|
||||
* [Microsoft Works Task Launcher](./tasklauncher.html)
|
||||
* [Microsoft Works Calendar](./calendar.html)
|
||||
* [Microsoft Works Portfolio](./portfolio.html)
|
||||
* [Default fonts in Microsoft Works Spreadsheet and Database](./defaultfonts.html)
|
||||
* [Microsoft Works Word Processor Format Gallery](./formatgallery.html)
|
||||
|
||||
## Portfolio
|
||||
|
||||
The Works Portfolio is Works' answer to Microsoft Office Binder. It is a lot more basic than Binder though; where Binder can transform itself into whatever program is needed to display each supported file, Portfolio just groups some files together, supports copy-pasting to and from those collections of files, lets you add comments, and lets you send those files to a new Word Processor document, a printer, an e-mail recipient or a folder. You can get a preview for a few supported formats, but to open a file, you will first have to send it to a folder and open it yourself. If you need to update the file, first remove the old file, and then put the new one back in. This is more like the Office Clipboard Manager than Binder!
|
||||
|
||||
The executable for Works Portfolio is named `WksSb.exe`, which might mean *Works Shoebox*. This is not to be confused with the Shoebox file format.
|
||||
|
||||
::: todo
|
||||
Look into the file format of the Works Portfolio
|
||||
:::
|
||||
|
||||
## Shoebox
|
||||
|
||||
The clip art that can be inserted into Works documents relies on multiple files:
|
||||
|
@ -51,4 +42,8 @@ Starting with Works 9.0, an XML file stores all of the tips shown under the *Tip
|
|||
|
||||
Of course, I wrote [an XML schema for it](../xsd/TipFormat.xsd).
|
||||
|
||||
::: todo
|
||||
Write scripts to generate custom tips from `fortune` files
|
||||
:::
|
||||
|
||||
[justsolve-works]: http://fileformats.archiveteam.org/wiki/Microsoft_Works
|
||||
|
|
|
@ -0,0 +1,260 @@
|
|||
---
|
||||
title: Microsoft Works Portfolio
|
||||
---
|
||||
|
||||
The Portfolio is Microsoft Works' answer to Microsoft Office Binder. It is a lot more basic than Binder though; where Binder can transform itself into whatever program is needed to display each supported file, Portfolio just groups some files together, supports copy-pasting to and from those collections of files, lets you add comments, and lets you send those files to a new Word Processor document, a printer, an e-mail recipient or a folder. You can get a preview for a few supported formats, but to open a file, you will first have to send it to a folder and open it yourself. If you need to update the file, first remove the old file, and then put the new one back in. This is more like the Office Clipboard Manager than Binder!
|
||||
|
||||
The executable for Works Portfolio is named `WksSb.exe`, which might mean *Works Shoebox*. This is not to be confused with the actual Shoebox, which is the Works clipart manager.
|
||||
|
||||
The Portfolio stores its files under `%USERPROFILE%\Local Settings\Application Data\Microsoft\Works\Portfolio`, or on Vista and later, `%LOCALAPPDATA%\Microsoft\Works\Portfolio`. Two files exist for each collection created with the Portfolio, both named after the collection's name:
|
||||
|
||||
* `<Name>.wsb`, whose extension probably stands for *Works Shoebox* again, is a [Compound File Binary][ms-cfb] holding the entire collection metadata and file contents.
|
||||
* `<Name>.dir` is a hidden directory created by the Portfolio as a cache, to avoid having to extract files all of the time.
|
||||
|
||||
## WSB files
|
||||
|
||||
::: todo
|
||||
* Document the CFB structure
|
||||
* Test with files other than images
|
||||
* Test with large files
|
||||
* Write a Windows 2000-compatible CFB extractor
|
||||
:::
|
||||
|
||||
The WSB files hold the entire collection. This includes the file names, file sizes, file contents, thumbnails, comments, original paths, and order of the files within the collection. These are stored in a very common binary format for Microsoft apps of the time, [Compound File Binary][ms-cfb]. This format is a mini-filesystem, with a file allocation table, sectors, etc., which can hold directories and files, known as *storages* and *streams*. A CFB file can contains streams and storages, and storages can also contain streams and other storages.
|
||||
|
||||
```
|
||||
├── 1
|
||||
│ ├── __bthumb
|
||||
│ ├── __cf1
|
||||
│ ├── __fname
|
||||
│ ├── __size
|
||||
│ └── __thumb
|
||||
├── __CountDelayThumb
|
||||
├── __IDsDelayThumb
|
||||
├── __LastID
|
||||
├── PfOrder
|
||||
├── PfSelection
|
||||
└── __SizeUsed
|
||||
```
|
||||
|
||||
### Root streams
|
||||
|
||||
`__CountDelayThumb`
|
||||
: TODO
|
||||
|
||||
`__IDsDelayThumb`
|
||||
: TODO
|
||||
|
||||
`__LastID`
|
||||
: TODO
|
||||
|
||||
`PfOrder`
|
||||
: TODO
|
||||
|
||||
`PfSelection`
|
||||
: TODO
|
||||
|
||||
`_SizeUsed`
|
||||
: TODO
|
||||
|
||||
### Streams per file
|
||||
|
||||
`__bthumb`
|
||||
: TODO
|
||||
|
||||
`__cf1`
|
||||
: File contents, prefixed with 24 bytes of data.
|
||||
|
||||
`__fname`
|
||||
: TODO
|
||||
|
||||
`__size`
|
||||
: TODO
|
||||
|
||||
`__thumb`
|
||||
: TODO
|
||||
|
||||
|
||||
## Cache directory
|
||||
|
||||
The cache directory, holding the same name as the WSB file but with a `.dir` extension, is automatically created by the Portfolio and marked as hidden. It contains each file in the collection, extracted from the WSB file, with its real name and other attributes, each within a separate directory holding the same name as the storages in the WSB.
|
||||
|
||||
## Registry
|
||||
|
||||
The Portfolio stores its settings in the Registry:
|
||||
|
||||
```ini
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Works\8.0\Portfolio]
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Works\8.0\Portfolio\Frame]
|
||||
"WidgetLastRc_Left"=dword:00000601
|
||||
"WidgetLastRc_Right"=dword:00000650
|
||||
"WidgetLastRc_Top"=dword:00000000
|
||||
"WidgetLastRc_Bottom"=dword:0000002c
|
||||
"TbLastRc_Left"=dword:00000719
|
||||
"TbLastRc_Right"=dword:00000768
|
||||
"TbLastRc_Top"=dword:00000000
|
||||
"TbLastRc_Bottom"=dword:0000002c
|
||||
"WidgetEdgeIndexTbMode"=dword:00000002
|
||||
"WidgetEdgeIndexWidgMode"=dword:00000001
|
||||
"WidgetSize_Cx"=dword:0000009e
|
||||
"WidgetSize_Cy"=dword:000001b8
|
||||
"Widget_Pinning"=dword:00000000
|
||||
"PfViewMode"=dword:00000000
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Works\8.0\Portfolio\Options]
|
||||
"ShowMeNoHelp"=dword:00000001
|
||||
"NoSounds"=dword:00000000
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Microsoft\Works\8.0\Portfolio\Views]
|
||||
"AnnDlgSize_Cx"=dword:00000206
|
||||
"AnnDlgSize_Cy"=dword:00000177
|
||||
"LastPortfolio"="Portfolio Name"
|
||||
"DropHRect_Left"=dword:00000000
|
||||
"DropHRect_Right"=dword:00000066
|
||||
"DropHRect_Top"=dword:00000000
|
||||
"DropHRect_Bottom"=dword:00000066
|
||||
"DropVRect_Left"=dword:00000719
|
||||
"DropVRect_Right"=dword:00000780
|
||||
"DropVRect_Top"=dword:00000000
|
||||
"DropVRect_Bottom"=dword:0000041c
|
||||
"DropSnappyRect_Left"=dword:00000601
|
||||
"DropSnappyRect_Right"=dword:00000668
|
||||
"DropSnappyRect_Top"=dword:0000002a
|
||||
"DropSnappyRect_Bottom"=dword:000001ba
|
||||
"Drop_EdgeIndex"=dword:00000001
|
||||
"Drop_ToolBar"=dword:00000000
|
||||
"BigModeRect_Left"=dword:00000280
|
||||
"BigModeRect_Right"=dword:00000500
|
||||
"BigModeRect_Top"=dword:0000012c
|
||||
"BigModeRect_Bottom"=dword:000002f0
|
||||
"BigModeMaximized"=dword:00000000
|
||||
```
|
||||
|
||||
::: todo
|
||||
Document those values
|
||||
:::
|
||||
|
||||
### Frame
|
||||
|
||||
`WidgetLastRc_Left`
|
||||
: TODO
|
||||
|
||||
`WidgetLastRc_Right`
|
||||
: TODO
|
||||
|
||||
`WidgetLastRc_Top`
|
||||
: TODO
|
||||
|
||||
`WidgetLastRc_Bottom`
|
||||
: TODO
|
||||
|
||||
`TbLastRc_Left`
|
||||
: TODO
|
||||
|
||||
`TbLastRc_Right`
|
||||
: TODO
|
||||
|
||||
`TbLastRc_Top`
|
||||
: TODO
|
||||
|
||||
`TbLastRc_Bottom`
|
||||
: TODO
|
||||
|
||||
`WidgetEdgeIndexTbMode`
|
||||
: TODO
|
||||
|
||||
`WidgetEdgeIndexWidgMode`
|
||||
: TODO
|
||||
|
||||
`WidgetSize_Cx`
|
||||
: TODO
|
||||
|
||||
`WidgetSize_Cy`
|
||||
: TODO
|
||||
|
||||
`Widget_Pinning`
|
||||
: TODO
|
||||
|
||||
`PfViewMode`
|
||||
: TODO
|
||||
|
||||
### Options
|
||||
|
||||
`ShowMeNoHelp`
|
||||
: TODO
|
||||
|
||||
`NoSounds`
|
||||
: TODO
|
||||
|
||||
### Views
|
||||
|
||||
`AnnDlgSize_Cx`
|
||||
: TODO
|
||||
|
||||
`AnnDlgSize_Cy`
|
||||
: TODO
|
||||
|
||||
`LastPortfolio`
|
||||
: TODO
|
||||
|
||||
`DropHRect_Left`
|
||||
: TODO
|
||||
|
||||
`DropHRect_Right`
|
||||
: TODO
|
||||
|
||||
`DropHRect_Top`
|
||||
: TODO
|
||||
|
||||
`DropHRect_Bottom`
|
||||
: TODO
|
||||
|
||||
`DropVRect_Left`
|
||||
: TODO
|
||||
|
||||
`DropVRect_Right`
|
||||
: TODO
|
||||
|
||||
`DropVRect_Top`
|
||||
: TODO
|
||||
|
||||
`DropVRect_Bottom`
|
||||
: TODO
|
||||
|
||||
`DropSnappyRect_Left`
|
||||
: TODO
|
||||
|
||||
`DropSnappyRect_Right`
|
||||
: TODO
|
||||
|
||||
`DropSnappyRect_Top`
|
||||
: TODO
|
||||
|
||||
`DropSnappyRect_Bottom`
|
||||
: TODO
|
||||
|
||||
`Drop_EdgeIndex`
|
||||
: TODO
|
||||
|
||||
`Drop_ToolBar`
|
||||
: TODO
|
||||
|
||||
`BigModeRect_Left`
|
||||
: TODO
|
||||
|
||||
`BigModeRect_Right`
|
||||
: TODO
|
||||
|
||||
`BigModeRect_Top`
|
||||
: TODO
|
||||
|
||||
`BigModeRect_Bottom`
|
||||
: TODO
|
||||
|
||||
`BigModeMaximized`
|
||||
: TODO
|
||||
|
||||
[ms-cfb]: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b
|
Loading…
Reference in New Issue