>> 1. What types of procedures are automatically handled by the WebHandler? It looks like NetWebForm, NetWebPage etc always get in there but I don't understand how in example 14 'MailboxesReportWithOptions' (a Report) gets into the list.
All the "page" style procedures get here. Reports get added because of the NetTalk extension to the report. NetWebSource procedures are not called here because they're designed to be "included" on pages, not be actual pages themselves.
>> In particular, I wanted to use a simple source procedure, prototyped (NetWebServerWorker p_web) and containing the magic p_web._Sendfile(). I ended up putting some handcode into theWebHandler so it would "serve the procedure". Must be the wrong way?
Start with a NetWebPage, not a NetWebSource.
There are a few examples that show embedding in a netWebPage - and from here you can do pretty much anything you like. I think the File Download example is a good place to see this in action.
>> 2. How do I put some simple text on a tab on a NetWebForm (some "notes" for the user)?
There's a "Display" form-field type. You can display text, URL's, images, buttons and so on.
>> 3. When using p_web._Sendfile() is there a way to override the url being used as the filename? What I mean is my excel file always opens as "StockListToExcel.xls" based on the server procedure name - I'd like to change it to "Client Name dd_mm_yyyy.xls" (for example).
nope, you can't do this. The _browser_ determines the name, not the server. ie the Browser "asks" for a file, and it always does the save-as with the name it asked for. There's no way for the server to say "hey, you asked for a.xls, but actually I'm sending you b.xls instead".