मैं कैसे एक स्क्रिप्ट ActiveX नियंत्रण लिखने के लिए सीख रहा हूँ एक विधि है कि के लिए एक सरल ActiveX नियंत्रण लिख रहा है। मेरा लक्ष्य एक छोटा सा नियंत्रण रखना है जो यह देखने के लिए जांच सकता है कि सिस्टम पर कुछ स्थापित है या नहीं। क्या मैं अब तक क्या किया है है:आईई
- में VS2008 एक MFC ActiveX नियंत्रण प्रोजेक्ट बना
- कुछ 'स्क्रिप्टिंग के लिए सुरक्षित' बिट्स कि मैं here पाया जोड़ें।
- मेरी "IsInstalled" विधि है, जो अब के लिए बिना शर्त सही रिटर्न प्रदान करने के लिए आईडीएल का विस्तार (लेकिन बाद में रजिस्ट्री से कुछ सुझाव दिए प्रदर्शित करेगा।)
- नियंत्रण और उस पर रन regsvr32 बनाएँ। मैं सत्यापित है कि यह HKEY_CLASSES_ROOT में दिखाई देती है, और जब मैं वस्तु का दृष्टांत, IE डेवलपर टूल "स्थानीय लोगों" फलक पता चलता है कि ऑब्जेक्ट प्रकार _D [मेरे प्लगइन का नाम] की है। इतना ही नहीं, लेकिन मेरी IsInstalled() विधि उस वस्तु के नीचे दिखाई देती है।
हालांकि, जब मैं IsInstalled() कहते हैं, मैं तो बस नहीं यह काम करने के लिए प्राप्त कर सकते हैं:
मैं एक नुकसान में हूँ। मैंने IDL में BOOL के बजाय बूलियन के बजाय VARIANT_BOOL का उपयोग करके, विधि के बजाय एक संपत्ति के बजाय IsInstalled को बनाने का प्रयास किया है, आप इसे नाम दें।
यहाँ कोड के प्रासंगिक अंश है।
हैडर:
afx_msg VARIANT_BOOL IsInstalled();
कार्यान्वयन:
afx_msg VARIANT_BOOL
CMyAXCtrl::IsInstalled()
{
return TRUE;
}
प्रेषण नक्शा:
BEGIN_DISPATCH_MAP(CMyAXCtrl, COleControl)
DISP_FUNCTION_ID(CMyAXCtrl, "IsInstalled", dispidIsInstalled, IsInstalled, VT_BOOL, VTS_NONE)
END_DISPATCH_MAP()
आईडीएल के प्रेषण हिस्सा:
[ uuid(6B662202-CF13-4144-AA33-C3FEE9C2C962),
helpstring("Dispatch interface for My Control")]
dispinterface _Daxplugin
{
properties:
methods:
[id(1)] VARIANT_BOOL IsInstalled();
};
यदि कोड के किसी अन्य प्रासंगिक बिट्स को मुझे प्रदान करना चाहिए, तो मुझे बताएं। लेकिन मैं यहाँ फंस गया हूँ। आपका अग्रिम में ही बहुत धन्यवाद!
आपको प्राप्त होने वाली जेस्क्रिप्ट रनटाइम त्रुटि क्या है? आपकी तस्वीर सिर्फ "(एन", जो बहुत उपयोगी नहीं है। –
यह वही है जो मैं कर रहा हूं। मैं पूर्ण रनटाइम त्रुटि को दिखाने का तरीका नहीं समझ सकता। वैसे भी, नीचे मेरी टिप्पणी देखें - यह एक महत्वपूर्ण बिंदु है अब –