BIPlugIn DLL Sample C++



The BiPlulg-in DLL sample demonstrate how the BiPlug-in interact with the printer driver.

The printer driver calls pre-defined functions from the Plug-in at each phase of printing. Developers have full access to the DLL and can insert their own custom code to each DLL function to perform a variety of tasks as required by their application.




The Standard DEVMODE data structure cannot be changed in the Plug-in DLL such as page resolution, orientation, and page size. Any change to the Standard DEVMODE data structure may cause printer crash.

The BiStartDoc function receives a different instance of the extended DEVMODE structure than BiStartPage and the other functions. You might need to reapply your changes to the DEVMODE structure in the BiStartPage function.


Compiling and Trying the Sample


The Plug-in (BiPlugin.dll) and BlackIceDEVMODE.dll component should be installed with the printer driver. The Plug-in (BiPlugin.dll) and BlackIceDEVMODE.dll component must be in the C:\windows\system32\ folder.


If there is an already installed Black Ice Printer Driver on the system, one can try the BiPlugin C++ sample by copying the (BiPlugin.dll) and BlackIceDEVMODE.dll component into the C:\windows\system32\ folder and print to the Black Ice Printer Driver.


During the printing the custom BiPlugin displays a window, where the user can enter a custom data:



The Printer Driver pass the entered custom data back to the BiPlugin.dll with each function call. The BiPlugin.dll displays a message box with the entered custom data for each function call.




System support:

Windows 10/8/7/Vista/XP and Microsoft or Citrix Servers 2012/2008 R2/2008/2003

The Plug-in sample application supports both 32 bit and 64 bit printer drivers.


Sample Source Code Folder Location:

<RTK Installation Folder>\<RTK 32/64 bit>\Samples\Sample Source Codes\C++\Plugin C++ Sample


Solution files


Plugin C++ Sample_VS2005.sln

Visual Studio 2005

Plugin C++ Sample _VS2010.sln

Visual Studio 2010

Plugin C++ Sample _VS2012.sln

Visual Studio 2012

Plugin C++ Sample _VS2013.sln

Visual Studio 2013

Plugin C++ Sample _VS2015.sln

Visual Studio 2015