Add and delete custom printer forms

To distribute applications that use reports with custom paper size you have to create custom printer forms on every destination PC that runs Windows 2000 or later. The MS KB article Q157172

explains how it can be done manually. However there's a way to do that programmatically using Windows API.

Enumerating printer forms

Enumerating of printer forms can be done with Windows API EnumForms function. Contrary to what MSDN says, it returns the list of all printer forms on PC, not just for the specific printer. On other hand, DeviceCapabilities can return a list of supported paper sizes for the printer.

Get number of jobs in print queue

The number of jobs in print queue can be retrieved by simplified version of Enumerating jobs in print queue

Enumerating jobs in print queue

Enumerating jobs in a print queue can be done with

How to delete all Print Jobs from a print queue

All jobs from a print queue can be deleted with

Commenting via shortcut keys in VFP


The comment/uncomment items on the Format menu do not have shortcut keys but they have access keys assigned. Pressing ALT+om and ALT+on on a keyboard will comment/uncomment selected text respectively.

Send email via Gmail account

Gmail SMTP server requires SSL connection on port 465.

CDO 2000 constants

CDO 2000 constants and enumerations

Send email with CDO 2000

It's simple and convenient to send unattended email with CDO 2000 as long as there's a SMTP server available.