كيفية استرداد DIBs من "الحافظة"

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية106386
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
يمكن أن يستغرق استرداد DIB (صورة نقطية مستقلة عن الأجهزة) من الحافظة وقت بشكل ملحوظ أكثر من استرداد صورة نقطية من الحافظة. stems الفرق من الحقائق صورة نقطية كائن GDI و DIB كائن ذاكرة عمومية.
معلومات أخرى
عندما يتم تمرير SetClipBoardData() ذاكرة عمومية معالجة كما عندما يتم تمرير مؤشر إلى DIB كافة يحصل نسخ البيانات إلى الملقم Win32 ووضع إلى مقطع قابل للمشاركة من الذاكرة. عند استرداد في DIB مع GetClipBoardData() تعيين الذاكرة المشتركة في مساحة العنوان الظاهرية للتطبيق ثم مقبض الذاكرة التي تم تخزينها مؤقتاً. يتم إرجاع أي استدعاءات اللاحقة إلى GetClipBoardData() بسرعة لأنه ليس لدى الذاكرة التي يمكن إعادة تعيين.

وفي المقابل، عند استرداد صورة نقطية مع GetClipBoardData() ، مقبض ما يتم إنشاء بسبب صورة نقطية كائن GDI.

عندما يتم استدعاء CloseClipboard() يتم حذف كافة مؤشرات المخزنة مؤقتاً إلى الذاكرة المشتركة وكائنات GDI.

بدلاً من إعادة فتح الحافظة, من المستحسن الاحتفاظ بنسخة محلية من أي شيء استردادها من الحافظة إذا كان سيتم استخدام العنصر مرة أخرى بعد إغلاق الحافظة. بشكل عام، يجب أن يتم استرداد البيانات من الحافظة فقط عندما يتم إجراء التطبيق لصق أو إذا كان التطبيق عارض حافظة معالجة رسالة WM_DRAWCLIPBOARD.

البيانات لكائن GDI موجودة على الملقم. بمعنى آخر، الصور النقطية و DDBs (صور نقطية الجهاز التابعة) موجودة في مساحة العنوان النظام الفرعي Win32. تكون مقابض كائنات GDI الخاص بالتطبيق. ولذلك، لكي يمكن صورة نقطية أو DDB الوصول إلى تطبيق آخر فقط استدعاء DuplicateHandle() مطلوب.

لاحظ أنه على الرغم من أن وهو أسرع من استرداد DDB من الحافظة لا يزال المستحسن وضع DIB على الحافظة بدلاً من DDB.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 106386 - آخر مراجعة: 01/10/2015 10:55:22 - المراجعة: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbnosurvey kbarchive kbmt kbclipboard kbhowto KB106386 KbMtar
تعليقات
ERROR: at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)