PrintExt object
The IPrintExt interface defines the extension interface that a client needs to implement it in order to provide Print and Print Preview capabilities. The IPrintExt interface definition follows:

interface IPrintExt : IUnknown
    [propget, id(1), helpstring("Retrieves the count of pages.")] HRESULT PageCount( [in] VARIANT Options, [out, retval] long *pVal );
    [id(2), helpstring("Prints a page.")] HRESULT DrawPage( [in] VARIANT Options, long hDC, IPage* Page, VARIANT_BOOL* pbContinue );

The PrintExt/PrintExts property accepts only objects that implement IPrintExt interface.  If PrintExt and PrintExts properties are empty, the DoPrint and  Preview methods fail.