Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
WritePrinter işlevi, yazdırma biriktiricisine verilerin belirtilen yazıcıya yazılması gerektiğini bildirir.
Uyarı
WritePrinter yalnızca GDI yazdırmayı destekler ve XPS yazdırma için kullanılmamalıdır. Yazdırma işiniz XPS veya OpenXPS yazdırma yolunu kullanıyorsa XPS Yazdırma API'sini kullanın. WritePrinter kullanılarak biriktiriciye XPS veya OpenXPS yazdırma işlerinin gönderilmesi desteklenmez ve belirsiz sonuçlara neden olabilir.
Sözdizimi
BOOL WritePrinter(
_In_ HANDLE hPrinter,
_In_ LPVOID pBuf,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcWritten
);
Parametreler
-
hPrinter [in]
-
Yazıcının tutamacı. Yazıcı tutamacını almak için OpenPrinter veya AddPrinter işlevini kullanın.
-
pBuf [in]
-
Yazıcıya yazılması gereken verileri içeren bayt dizisi işaretçisi.
-
cbBuf [in]
-
Dizinin bayt cinsinden boyutu.
-
pcWritten [out]
-
Yazıcıya yazılan veri bayt sayısını alan bir değerin işaretçisi.
Dönüş değeri
İşlev başarılı olursa, dönüş değeri sıfır olmayan bir değerdir.
İşlev başarısız olursa, dönüş değeri sıfır olur.
Açıklamalar
Uyarı
Bu, engelleyici veya zaman uyumlu bir işlevdir ve hemen döndürülmeyebilir. Bu işlevin ne kadar hızlı döndürüleceği ağ durumu, yazdırma sunucusu yapılandırması ve uygulama yazarken tahmin edilmesi zor olan yazıcı sürücüsü uygulama faktörleri gibi çalışma zamanı faktörlerine bağlıdır. Bu işlevin kullanıcı arabirimiyle etkileşimi yöneten bir iş parçacığından çağrılması, uygulamanın yanıt vermemeye başlamasına neden olabilir.
Yazdırma işinin sırası aşağıdaki gibidir:
- Yazdırma işini başlatmak için StartDocPrinter'ı çağırın.
- Her sayfayı başlatmak için StartPagePrinter'ı arayın.
- Sayfaya veri yazmak için WritePrinter'ı çağırabilirsiniz.
- Her sayfayı sonlandırmak için EndPagePrinter'ı çağırabilirsiniz.
- Gerektiği kadar çok sayfa için 2, 3 ve 4'i yineleyin.
- Yazdırma işini sonlandırmak için EndDocPrinter'ı çağırın.
Üst düzey bir belge (Adobe PDF veya Microsoft Word dosyası gibi) veya diğer yazıcı verileri (PCL, PS veya HPGL gibi) doğrudan bir yazıcıya gönderildiğinde, belgede tanımlanan yazdırma ayarları Windows yazdırma ayarlarından daha önceliklidir. StartDocPrinter çağrısının pDocInfo parametresinde geçirilen DOC_INFO_1 yapısının pDatatype üyesinin değeri "RAW" olduğunda belge çıkışı, DEVMODE stili yazdırma işi ayarlarını donanım tarafından anlaşılan dilde tam olarak açıklamalıdır.
Windows XP'den önceki Windows sürümlerinde, biriktirilmiş bir dosyadaki bir sayfa yaklaşık 350 MB'ı aştığında yazdırılamaz ve hata iletisi gönderemez. Örneğin, büyük EMF dosyaları yazdırıldığında bu durum oluşabilir. Windows'un Windows XP öncesi sürümlerindeki sayfa boyutu sınırı, kullanılabilir sanal bellek miktarı, çağrılan işlemler tarafından ayrılan bellek miktarı ve işlem yığınındaki parçalanma miktarı gibi birçok faktöre bağlıdır. Windows XP ve Windows'un sonraki sürümlerinde EMF dosyalarının boyutu 2 GB veya daha az olmalıdır. Yazıcıya hazır PDL gibi EMF olmayan verileri yazmak için WritePrinter kullanılıyorsa, dosyanın boyutu yalnızca kullanılabilir disk alanıyla sınırlıdır.
Örnekler
Bu işlevi kullanan örnek bir program için bkz . Nasıl Yapılır: GDI Yazdırma API'sini Kullanarak Yazdırma.
Gereksinimler
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük düzeydeki istemci |
Windows 2000 Professional [yalnızca masaüstü uygulamaları] |
| Desteklenen en düşük sunucu |
Windows 2000 Server [yalnızca masaüstü uygulamaları] |
| Başlık |
|
| Kütüphane |
|
| DLL |
|