Здравствуйте, xjroman, Вы писали:
X>Вызов
X>X>CString strPrinter = GetDefaultPrinter();
X>CString pBuf = LoadFromFile ( strFile );
X>int iLen = pBuf.GetLength();
X>RawDataToPrinter ( strPrinter.GetBuffer(10), (unsigned char*)pBuf.GetBuffer(10), iLen );
X>
X>Я так подозреваю, что неправильно формирую lpData который передаю в
X>RawDataToPrinter. Но как надо я так и не нашел.
Не гарантирую что поможет, но мне хдесь очень не нравятся вызовы GetBuffer. Особенно с параметром 10

во-первых после них должен идти вызов метода ReleaseBuffer, во вторых для чего вообще GetBuffer вызывать ? Полагаю для точго чтобы получить указатель на LPTSTR, потому что получить такой указатель простым приведением у вас не получилось. Ну так измените в своем методе
BOOL CGrsprintApp::RawDataToPrinter( LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount )
LPSTR на LP
CSTR, LPBYTE на const LPBYTE -они ведь не должны меняться внутри этого метода.
и перепишите вызов так:
BOOL CGrsprintApp::RawDataToPrinter( LPCSTR szPrinterName, const LPBYTE lpData, DWORD dwCount )
//...
RawDataToPrinter ( strPrinter, (const unsigned char*)(LPCTSTR)pBuf, iLen );