Поделиться через


Метод IPrint::P rint (docobj.h)

Печатает объект на указанном принтере, используя указанные требования задания.

Синтаксис

HRESULT Print(
  [in]      DWORD             grfFlags,
  [in, out] DVTARGETDEVICE    **pptd,
  [in, out] PAGESET           **ppPageSet,
  [in, out] STGMEDIUM         *pstgmOptions,
  [in]      IContinueCallback *pcallback,
  [in]      LONG              nFirstPage,
  [out]     LONG              *pcPagesPrinted,
  [out]     LONG              *pnLastPage
);

Параметры

[in] grfFlags

Битовое поле, указывающее параметры печати из перечисления PRINTFLAG .

PRINTFLAG_MAYBOTHERUSER (1)

PRINTFLAG_PROMPTUSER (2)

PRINTFLAG_USERMAYCHANGEPRINTER (4)

PRINTFLAG_RECOMPOSETODEVICE (8)

PRINTFLAG_DONTACTUALLYPRINT (16)

PRINTFLAG_FORCEPROPERTIES (32)

PRINTFLAG_PRINTTOFILE (64)

[in, out] pptd

Указатель на структуру DVTARGETDEVICE , описывающую целевое устройство печати.

[in, out] ppPageSet

Указатель на переменную указателя PAGESET , которая получает указатель на структуру, указывающую, какие страницы должны быть напечатаны.

[in, out] pstgmOptions

Указатель на параметры печати для конкретных объектов в сериализованном наборе свойств OLE. Этот параметр может иметь значение NULL для входных или возвращаемых данных.

[in] pcallback

Указатель на интерфейс IContinueCallback на сайте представления, который должен периодически опрашивать со скоростью реагирования человека, чтобы определить, следует ли отказаться от печати. Этот параметр может принимать значение NULL.

[in] nFirstPage

Номер первой страницы для печати. Это значение переопределяет любое значение, ранее переданное в IPrint::SetInitialPageNum.

[out] pcPagesPrinted

Указатель на переменную, получающую фактическое количество успешно напечатанных страниц.

[out] pnLastPage

Указатель на переменную, получающую номер последней печатной страницы.

Возвращаемое значение

Этот метод может возвращать стандартное возвращаемое значение E_UNEXPECTED, а также следующие значения.

Код возврата Описание
S_OK
Метод завершился успешно.
PRINT_E_CANCELED
Процесс печати был отменен до завершения. *pcPagesPrinted указывает количество страниц, которые были успешно напечатаны до возникновения этой ошибки.
PRINT_E_NOSUCHPAGE
Страница, указанная в **ppPageSet или nFirstPage, не существует.

Комментарии

Принтер, на котором должен быть напечатан объект, обозначается структурой DVTARGETDEVICE, на которую указывает pptd. Структура DEVMODE на целевом устройстве указывает на параметры принтера всего задания, такие как количество копий, размер бумаги и качество печати. Структура DEVMODE также может содержать сведения об ориентации в элементе dmOrientation (это указано в элементе dmFields ). Если он присутствует, то следует использовать эту ориентацию бумаги; Если нет, то будет использоваться естественная ориентация, определяемая содержимым объекта.

Из-за возможности ввода пользователем параметры pptd и ppPageSet являются структурами [in,out]. При отсутствии взаимодействия с пользователем (т. е. если флаг PRINTFLAG_PROMPTUSER не установлен) и целевое устройство, и набор страниц обязательно будут одинаковыми для ввода и вывода. Однако если пользователю будет предложено ввести параметры печати, объект возвращает сведения о целевом устройстве и наборе страниц, соответствующие фактически выбранному пользователем.

Параметр pstgmOptions также имеет значение [in,out]. При выходе объект должен записать в *pstgmOptions все сведения, относящиеся к объекту, которые потребуются для воспроизведения этого точного задания печати. Примеры могут включать выбор пользователем элемента "лист, заметки или и то, и другое" в приложении электронной таблицы. Передаваемые данные в формате сериализованного набора свойств. Данные обычно полезны только при передаче обратно при последующем вызове того же объекта. Так как последующий вызов может указывать различные флаги взаимодействия с пользователем, целевое устройство или другие параметры, вызывающий объект может привести к тому, что документ будет напечатан несколько раз одинаково в немного разных контекстах печати.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header docobj.h

См. также раздел

Iprint