以下是 IPrintDialogServices 接口的定义:
#undef INTERFACE
#define INTERFACE IPrintDialogServices
DECLARE_INTERFACE_(IPrintDialogServices, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
// IPrintDialogServices methods
STDMETHOD(GetCurrentDevMode)(THIS_ LPDEVMODE pDevMode, UINT cbSize, UINT *pcbNeeded) PURE;
STDMETHOD(GetCurrentPrinterName)(THIS_ LPWSTR pPrinterName, UINT cchSize, UINT *pcchNeeded) PURE;
STDMETHOD(GetOutputFormat)(THIS_ GUID *pFormat) PURE;
STDMETHOD(GetPageRanges)(THIS_ BOOL *pUsePageRange, PAGESET *pPageRange, BOOL *pChanged) PURE;
STDMETHOD(InstallPrinter)(THIS_ LPCWSTR pPrinterName, HWND hwnd) PURE;
STDMETHOD(AddPrinter)(THIS_ HWND hwnd) PURE;
STDMETHOD(InitPrintDlg)(THIS_ IPrintDlgCallback *pPrintDlgCallback) PURE;
STDMETHOD(HasUserPrintDialog)(THIS) PURE;
};
这个接口继承自 IUnknown 接口,因此具有 QueryInterface、AddRef 和 Release 方法。
IPrintDialogServices 接口包含以下方法:
- GetCurrentDevMode: 获取当前打印机的设备模式(DEVMODE)。
- GetCurrentPrinterName: 获取当前选择的打印机的名称。
- GetOutputFormat: 获取打印对话框的输出格式。
- GetPageRanges: 获取打印对话框中指定的打印页范围。
- InstallPrinter: 安装指定名称的打印机。
- AddPrinter: 启动添加打印机向导。
- InitPrintDlg: 初始化打印对话框。
- HasUserPrintDialog: 检查是否支持用户级打印对话框。
这些方法允许应用程序获取和设置与打印对话框相关的信息,执行打印机的安装和添加,以及初始化打印对话框等操作。通常,应用程序通过实现这个接口的子类并将其传递给打印对话框的 SetPrintDialogServices 方法来使用 IPrintDialogServices 接口。
转载请注明出处:http://www.zyzy.cn/article/detail/25041/Win32 API/Commdlg.h/IPrintDialogServices