पर रिलीज हैंडल मैं वर्तमान में माइक्रोसॉफ्ट आउटलुक के लिए सी # .NET एड-इन पर काम कर रहा हूं। ऐड-इन का लक्ष्य Outlook त्वरित खोज से खोज इनपुट कैप्चर करने के लिए है, और एक कस्टम फलक में अपने स्वयं के खोज परिणामों में दिखाएं।मूल विंडो:
यह बहुत अच्छी तरह से काम करता है, और एक मूल विंडो के साथ आउटलुक विंडो को उपclassing के साथ, मुझे खोज स्ट्रिंग मिलती है, और यह पहले से ही मेरे पैनल में गुजरती है।
समस्याअब है, कि आप ऐड-में बंद करते हैं ("फ़ाइल> विकल्प> ऐड-Ins-> COM ऐड-इन्स" फलक में एक्स के साथ है, लेकिन नहीं के माध्यम से) , एड-इन तुरंत समाप्त हो जाता है और मैं अपनी WNDProc श्रृंखला को पुनर्स्थापित करने के लिए पहले से searchboxWindow.ReleaseHandle()
पर कॉल नहीं कर सकता। आउटलुक बस बिना किसी दृश्य त्रुटियों के दुर्घटनाग्रस्त हो जाता है।
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
switch ((uint)m.Msg)
{
case WindowMessages.WM_DESTROY:
case WindowMessages.WM_QUIT:
case WindowMessages.WM_NCDESTROY:
this.ReleaseHandle();
return;
case WindowMessages.WM_KEYUP:
case WindowMessages.WM_LBUTTONDOWN:
case WindowMessages.WM_RBUTTONDOWN:
OnKeyUp();
break;
case WindowMessages.WM_EXITSIZEMOVE:
OnResize();
break;
}
}
मैं पहले से ही कुछ विंडो संदेश है कि जब ऐड-में बंद कर दिया जाता है बुलाया जाना चाहिए को सुनने के लिए कोशिश की, लेकिन इन संदेशों को केवल दिखाई देते हैं जब मैं एक सामान्य तरीके से आउटलुक को बंद करें।
इसके अलावा, मुख्य एड-इन स्रोत फ़ाइल जैसे AppDomain.CurrentDomain.ProcessExit
, this.Shutdown
, या ((Outlook.ApplicationEvents_10_Event)this.Application).Quit
पर ईवेंट न कहें।
ऐड-इन समाप्त होने पर उस पर कौन सा ईवेंट सुन सकता है (विश्वसनीय रूप से) निकाल दिया जाता है? क्या वहाँ कुछ है? यदि नहीं, तो मेरी समस्या का समाधान करने के मेरे पास क्या विकल्प हैं?
क्या आपने डिप्लोस() को आजमाया था और यह सुनिश्चित करने के लिए डिप्लोज्ड इवेंट को एक विधि संलग्न कर रहा था कि यह वास्तव में निपटाया गया हो? –
मैंने आईडीस्पोजेबल इंटरफेस को कार्यान्वित किया और रिलीजहैंडल() को वहां बुलाया, लेकिन इसका कोई प्रभाव नहीं पड़ा? क्या यही मतलब है तुम्हारा? –
विंडो को अन-सबक्लास करने के लिए अपने ऐड-इन के शटडाउन ईवेंट का उपयोग करें। ऑटो-जेनरेटेड ThisAddIn_Shutdown() इवेंट हैंडलर में डरावनी भाषा है लेकिन यह अभी भी इस विशिष्ट परिदृश्य में उठाई गई है। –