मैं अपने स्वयं के WinForm में विंडोज टास्कबार से पता टूलबार प्रदर्शित करने की कोशिश कर रहा हूं। मैं पता toobar ({01E04581-4EEE-11d0-BFE9-00AA005B4383}
) का सीएलएसआईडी प्राप्त कर सकता हूं, और मुझे इसके संदर्भ में IDeskBand
मिल सकता है। लेकिन ... तो क्या?विंडोज़ फॉर्म में होस्ट आईडीस्क बैंड
Guid bandCLSID = new Guid("{01E04581-4EEE-11d0-BFE9-00AA005B4383}");
Type bandType = Type.GetTypeFromCLSID(bandCLSID);
IDeskBand deskband = (IDeskBand)Activator.CreateInstance(bandType);
मैं एक AxHost
में यह होस्टिंग की कोशिश की है, लेकिन पता उपकरण पट्टी एक एक्टिव एक्स नियंत्रण नहीं है। मैं
(deskband as IOleObjectWithSite).SetSite(various interfaces);
या
(deskband as IDockingWindow).ShowDW(true);
साथ ही विभिन्न अन्य इंटरफेस और उनके तरीकों को बुला की कोशिश की है, लेकिन कुछ भी मैं करता हूँ मुझे कहीं भी प्राप्त करने के लिए लगता है। अगर मैं वास्तव में उस टूलबार को कहीं भी देख सकता हूं तो मैं बहुत खुश हूं। लेकिन मैं IDeskBand
संदर्भ और इसे अपने विंडोज फॉर्म में प्लग करने के बीच के अंतर को पुल नहीं कर सकता।
क्या किसी ने पहले इसका प्रयास किया है, और मेरे पास आगे है?
क्या आप पता टूलबार डेस्कबैंड से आपको किस कार्यक्षमता की आवश्यकता है, इस बारे में अधिक जानकारी प्रदान कर सकते हैं? यह इंटरफ़ेस विंडोज 7 के रूप में बहिष्कृत किया गया था, इसलिए इसे विंडोज के भविष्य के संस्करणों में समर्थित नहीं किया जा सकता है। –
मैं अपने WinForm में पता डेस्कबैंड, और लिंक या यहां तक कि कस्टम वाले अन्य डेस्क को रखने में सक्षम होना चाहता हूं, और उन्हें टास्कबार पर दिखाई देने जैसा दिखाना है। – deanis
तो शायद यह एक 'आईडीस्क बैंड' नहीं है जिसे मैं कार्यान्वित करना चाहता हूं। मुझे पूरा यकीन है कि पता और लिंक टूलबार डेस्कबैंड COM ऑब्जेक्ट्स हैं, इसलिए मैंने 'आईडीस्क बैंड' पर कूद किया है। तो मैं वास्तव में क्या करने की कोशिश कर रहा हूं वह लक्ष्य COM ऑब्जेक्ट से पूछताछ करता है, जो मैं मेलिंग ग्रिड प्राप्त करने के लिए कर सकता हूं, इसे तुरंत चालू करें, जो मैं 'एक्टिवेटर। क्रिएट इंस्टेंस' के साथ करता हूं। जहां मेरे लिए चीजें अलग हो रही हैं, जब मैं अपने WinForm में COM ऑब्जेक्ट को होस्ट करने के लिए कूदने का प्रयास करता हूं। – deanis