The quote you cite regarding the BITMAP, OEMPS, etc. simply means that those samples only show the structure of a driver plugin and don't produce any output. But that doesn't mean they can't. If you want to build a driver plugin, I would recommend you begin with one of those samples and add code to it that does what you want.
Installing print drivers can be tricky because the Add Printer Wizard provides very poor error reporting. All it gives you is a Win32 error code. For example, if any required files are missing, it will just show you error code 0x2, which means missing file. However, it won't tell you which file is missing, which can be very frustrating. But rest assured, those samples can be installed. In general, you need to have all the files listed in the .inf file present in the same directory with the .inf file. In most cases, that would be one or two DLLs, plus an .ini and a .gpd or .ppd file. I just built and installed the generic text driver, for example. I also found a good tutorial on installing that driver here.
So I would recommend you begin with the generic text sample. Once you've got it to build and install, tackle the pscript driver. Don't change the .inf file they provide, and don't fiddle with the .rc file or certificates; you don't need a certificate.
An alternative to using the Add Printer Wizard is to install the driver directly using the AddPrinterDriver and AddPrinter functions. This is more complex, but I prefer it because it gives you more control and you can see exactly what errors are happening and why. No .inf file is needed. The following is a snippit of working code that installs a driver and creates a printer using that driver. Error checking and copying of files has been removed for clarity....
char driverPath[MAX_PATH];
DWORD needed;
GetPrinterDriverDirectory(0, 0, 1, (UCHAR *)driverPath, sizeof(driverPath), &needed);
// **copy all necessary files to driverPath here**
// format all file names with full paths
char driverSrc[MAX_PATH];
sprintf_s(driverSrc, "%s\\%s", driverPath, psDriverFile);
char driverUISrc[MAX_PATH];
sprintf_s(driverUISrc, "%s\\%s", driverPath, psUIFile);
char driverPPDSrc[MAX_PATH];
sprintf_s(driverPPDSrc, "%s\\%s", driverPath, psPPDFile);
char helpFileSrc[MAX_PATH];
sprintf_s(helpFileSrc, "%s\\%s", driverPath, psHelpFile);
// initialize the DRIVER_INFO struct
DRIVER_INFO_3 di;
memset(&di, 0, sizeof(di));
di.cVersion = 3;
di.pEnvironment = "Windows x64";
di.pDriverPath = driverPath;
di.pName = "MyDriver";
di.pDefaultDataType = "RAW";
di.pDataFile = driverPPDSrc;
di.pConfigFile = driverUISrc;
di.pHelpFile = helpFileSrc;
di.pDependentFiles = pszDependentFiles;
// add the driver
AddPrinterDriver(0, 3, (LPBYTE)&di);
// create the printer
PRINTER_INFO_2 pi;
memset(&pi, 0, sizeof(pi));
pi.pPrinterName = (LPSTR)pPrinterNames->at(i);
pi.pDriverName = "MyDriver";
pi.pPrintProcessor = "winprint";
pi.Attributes = PRINTER_ATTRIBUTE_LOCAL;
pi.pDatatype = "RAW";
pi.pPortName = "LPT1:";
HANDLE hPrinter = AddPrinter(0, 2, (LPBYTE)&pi);