2010-10-03 17 views
8

मैं यह पता लगाने की कोशिश कर रहा हूं कि डीडब्लूएम का उपयोग अपनी खिड़की की प्रतिलिपि को अपने वांछित स्थान में प्रस्तुत करने के लिए कैसे करें। डीडब्लूएम को कहीं भी प्रस्तुत करने के लिए कहने के लिए एकमात्र चीज थंबनेल एपीआई के साथ है।"फ्लिप 3 डी जैसे अनुप्रयोग बनाने" के लिए एपीआई क्या है

लेकिन MSDN के DWM Thumbnail Overview वे विशेष रूप से मुझसे दूर चेतावनी दी है:

नोट DWM थंबनेल Windows Vista Flip3D (Winkey-टैब) सुविधा की तरह अनुप्रयोगों का निर्माण करने डेवलपर्स सक्षम नहीं है। थंबनेल 2-डी में गंतव्य विंडो पर सीधे प्रस्तुत किए जाते हैं।

मुझे बताया गया है कि thumbnailing एपीआई Flip3D जैसे अनुप्रयोगों बनाने के लिए इस्तेमाल नहीं किया जा सकता है, लेकिन वे नहीं कहते जो एपीआई विंडोज Flip3D जैसे अनुप्रयोगों को बनाने के लिए इस्तेमाल किया जा सकता।

तो क्या API Windows Vista Flip3D जैसे अनुप्रयोग बनाने के लिए उपयोग किया जा सकता है?


पृष्ठभूमि

Windows डेस्कटॉप संरचना चल रहा से, एप्लिकेशन अपने निजी बफर पर अपने खिड़की क्लाइंट-क्षेत्र के आकर्षित। (यह विंडोज के पिछले संस्करणों के साथ विरोधाभास करता है जहां हर एप्लिकेशन सीधे स्क्रीन पर खींचा जाता है)। इस क्लाइंट एरिया छवि को तब फ्रेम में रखा जाता है (शीर्षक बार, छोटा करें, अधिकतम करें, बटन बहाल करें, आदि) और उसके बाद डेस्कटॉप पर खींचे गए (यानी मिश्रित) - खुले अन्य सभी विंडोज़ के साथ:

alt text

क्योंकि यह बफर निजी है, और क्योंकि पिछले कुछ वर्षों में ग्राफिक्स कार्ड 3 डी कार्यों को करने में शक्तिशाली बन गए हैं, तो विंडोज कुछ साफ चालें शुरू कर सकते हैं। उनमें से एक क्लाइंट विंडो में हेरफेर करने, स्केलिंग और परिप्रेक्ष्य में बदलाव करने में सक्षम होना है। यह लाइव "थंबनेल" एपीआई की अनुमति देता है - जहां विंडोज एक खिड़की की थंबनेल आकार की प्रतिलिपि खींच लेगा जहां आप इसे बताते हैं। चूंकि यह सब हार्डवेयर में हो रहा है, यह बहुत तेज़ है।

अन्य क्षमता फ्लिप 3 डी (विन + टैब) है। कंपोजिटर खिड़की की 3 डी पोजीशनिंग कर सकता है। दोबारा, क्योंकि यह सब हार्डवेयर में किया जाता है यह बहुत तेज़ है।

मैं डेस्कटॉप विंडो मॉनिटर बताने के लिए मुझे एक आवेदन "यहाँ" के थम्बनेल आकर्षित करने के लिए एपीआई पाया है:

//Register a thumbnail we want 
DwmRegisterThumbnail({in}hwndDestination, {in}hwndSource, out thumbnail); 

// Start displaying the thumbnail 
DwmUpdateThumbnailProperties({in}thumbnail, {in}thumbproperties); 

लेकिन मैं DWM बताने के लिए मुझे पूर्ण आकर्षित करने के लिए एपीआई नहीं मिल सकता है एक खिड़की का आकार संस्करण।


संपादित: You can't blame Microsoft for copy protection in Windows:

  • लाइसेंस उत्पाद के रूप में अनुपालन नियम का अनुपालन करेगा भेज दिया है और डिज़ाइन किया जाएगा और एक तरीके से निर्मित स्पष्ट रूप से है कि तैयार किया गया प्रभावी ढंग से करने के लिए निराशा एचडीसीपी विशिष्टता की सामग्री सुरक्षा आवश्यकताओं को रोकने के लिए ऐसे लाइसेंस प्राप्त उत्पादों को संशोधित करने का प्रयास करता है और अनुपालन नियम।

  • लाइसेंस प्राप्त उत्पादों बनाया गया है और निर्मित किया जाएगा एक तरह से स्पष्ट रूप से प्रभावी ढंग से हताश करने के प्रयासों की खोज या डिवाइस कुंजी या अन्य अति गोपनीय सूचना प्रकट करने का इरादा है कि में

  • लाइसेंस उत्पाद का उपयोग होना चाहिए कम से कम निम्नलिखित तकनीकों, जो प्रभावी ढंग से निराशाजनक रूप से डिजाइन किए गए हैं, एचडीसीपी की सामग्री सुरक्षा आवश्यकताओं को हराने के लिए प्रयास करता है विशिष्टता और अनुपालन नियम

आपको सोनी को दोष देना होगा।

+0

मैं भी एक समाधान की तलाश में हूं; किसी भी तरह मुझे संदेह है कि एक मौजूद है, यह माइक्रोसॉफ्ट है। – AniDev

+0

मुझे संदेह है कि लाइसेंस समाधान (http://en.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection) –

+3

द्वारा आवश्यक "माइक्रोसॉफ्ट के उपयोगकर्ताओं * *" निराशा "के लिए एक समाधान मौजूद है, यदि यह एचडीसीपी का दुष्प्रभाव है तो ओएस एक्स में 'CGWindowListCreateImage' क्यों है? मैं नहीं देखता कि यह किसी भी तरह से कैसे संबंधित है। हो सकता है कि वे बस खिड़की प्रणाली के साथ गड़बड़ नहीं करना चाहते हैं। किसी भी मामले में, हमेशा एक रास्ता है। बस कुछ डीडब्लूएम रिवर्स इंजीनियरिंग की आवश्यकता है। –

उत्तर

1

इस परियोजना पर एक नज़र डालें: https://github.com/gratianlup/SmartFlip। यह डब्ल्यूपीएफ और थंबनेल एपीआई का उपयोग करता है।