Это для драйвера растрового изображения. Пример:
https://github.com/microsoft/Windows-driver-samples/tree/master/print/OEM%20Printer%20Customization%20Plug-in%20Samples/C%2B%2B/bitmap
ИЛИ
https://github.com/microsoft/Windows-driver-samples/tree/master/print/OEM%20Printer%20Customization%20Plug-in%20Samples/C%2B%2B
а) Почему нужно включить Banding? Есть ли проблемы с производительностью / памятью, если полоса отключена? Как я убедился, что мне не нужно включать бэндинг.
b) OEMSendPage не вызывается, когда включена полоса, вызывается следующая полоса. Как я узнаю, будет ли обрабатываться следующая страница? Доступны начальная полоса, следующая полоса и конец Do c. Похоже, что-то не хватает между Next Band и End Do c, как End Page? Внутри Next Band есть pptl (Указатель на источник следующего диапазона (для возврата в GDI)). Что это значит? Может ли кто-нибудь опубликовать образец Next Band для какой-либо обработки, выполняемой внутри этой команды, для каждой страницы, а не для каждой полосы? Считается ли эта проверка безопасной для обработки каждой страницы? Означает ли pptl.x = -1, ppt1.y = -1 новую страницу или конец страницы?
// Punt call back to UNIDRV.
BOOL b= (pOemPDEV->m_pfnDrvNextBand)(pso,
pptl);
if (pptl != NULL && pptl->x == -1 && pptl->y == -1)
{
BOOL c = DoSomeExtraProcessing(pso, gFirstPage, gszPageText);
if (!c)
return TRUE;
}
return b;
c) Если бы я отключил бандинг, каким должен быть код внутри EngMarkBandingSurface
Спасибо