Печать через GDI и winspool

Тема в разделе "WASM.WIN32", создана пользователем Marik, 2 июл 2010.

  1. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Добрый день!
    Для печати из приложений существуют такие WinApi как CreateDC, StartDoc, StartPage, ... из библиотеки GDI32.DLL , эти функции возвращают/работают с hDC (device context). Если посмотреть трасировку этих функций то они обращаются к winspool.drv к аналогичным функциям OpenPrinter, StartDocPrinter, StartPagePrinter, ... НО эти функции работают уже непосредственно с хэндлом принтера (hPrinter)
    По сути печатать можно и напрямую минуя GDI32.
    Собственно вопрос, возможно ли связать hDC и hPrinter? т.е. по hDC получить hPrinter и наоборот.
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Marik
    RpcOpenPrinter() ?
    Это запросы в сервисный процесс на порт spoolss, а там к шадову.
     
  3. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Clerk
    это не совсем то, мне нужно по hdc определить какой хендл принтера был открыт.
     
  4. irrona

    irrona Member

    Публикаций:
    0
    Регистрация:
    26 май 2004
    Сообщения:
    178
    Адрес:
    Тирасполь
    Marik

    Эти функции работают с контекстом и им без разницы чей это контекст: экрана или принтера.