कुछ आईडीएल में मैंने काम किया है, मैंने देखा है कि विधियों में वापसी मानों को चिह्नित करने के लिए 2 सम्मेलन हैं - [in, out]
और [out, retval]
।COM आईडीएल परिभाषाओं में [इन, आउट] और [आउट, रिटावल] के बीच मतभेद
ऐसा लगता है कि [in, out]
उदाहरण के लिए, जब वहाँ कई वापसी मान हैं प्रयोग किया जाता है:
HRESULT MyMethod(
[in] long InputParam,
[in, out] long* OutputParam1,
[in, out] long* OutputParam2
);
ऐसा लगता है कि जब वहाँ केवल एक ही वापसी मान है [out, retval]
प्रयोग किया जाता है, उदाहरण के लिए:
HRESULT MyMethod2(
[in] long InputParam,
[out, retval] long* OutputParam1
);
क्या यह एक COM आईडीएल सम्मेलन है या कोड के साथ बस एक सम्मेलन है जिसके साथ मैं काम कर रहा हूं?
क्या कोड में कोई कार्यात्मक अंतर है जो 2 नोटेशन से उत्पन्न होगा, या वे पूरी तरह से अदलाबदल योग्य हैं?
उपयोगी स्पष्टीकरण के लिए धन्यवाद। – LeopardSkinPillBoxHat
मैं यह जोड़ना चाहता हूं कि '[इन, आउट]' को सभी भाषाओं द्वारा सही ढंग से संभाला नहीं जा सकता है (अधिक विशेष रूप से, पुराना स्कूल विजुअल बेसिक, .NET के बारे में निश्चित नहीं है)। –
मुझे आश्चर्य है कि [आउट, रिटावल] COM इंटरफेस को परिभाषित करने के लिए सर्वोत्तम अभ्यास के खिलाफ है क्योंकि निष्पादन विफल होने पर त्रुटि कोड (HRESULT) प्राप्त करने का कोई तरीका नहीं है? – dave