2009-11-19 5 views
2

J'impression à l'aide CreateDC, en passant dans une structure DEVMODE valide et obtenir NULL retourné qui indique une erreur, mais GetLastError retourne 0.CreateDC échoue avec le code d'erreur 0

m_hDC = ::CreateDC(L"WINSPOOL", PrinterName, NULL, pDevMode); 
if (m_hDC == NULL) 
{ 
throw Exception(GetLastError(), __LINE__, _T(__FILE__)); 
} 

Cela fonctionne pour tous mes clients en dehors d'un, des idées?

Répondre

2

Cela s'est avéré être un problème avec les api de bobineuses.

Le logiciel est un service Windows 32 bits fonctionnant sur un système 64 bits.

Il semble qu'un seul utilisateur/session peut imprimer à la fois à partir d'un processus 32 bits, l'utilisateur suivant doit attendre que le délai d'expiration de splwow64.exe (ou le tuer) avant de pouvoir imprimer. Il est couvert par un technote de MS.

0

Etes-vous sûr que pDevMode est valide? Vous pouvez essayer d'utiliser un pointeur NULL ici au cas où le DEVMODE est le problème.

+0

Échec avec NULL également. –

Questions connexes