Qt 5.11 - QAxAggregated (class)

QAxAggregated Class




qt

QAxAggregated Class

QAxAggregated वर्ग अतिरिक्त COM इंटरफ़ेस के कार्यान्वयन के लिए एक सार आधार वर्ग है। More...

हैडर: #include <QAxAggregated>
qmake: क्यूटी + = एक्ससेर्वर

सार्वजनिक कार्य

आभासी लंबा queryInterface (कास्ट क्विड और आईआईडी , शून्य ** iface ) = 0

संरक्षित कार्य

वास्तविक ~QAxAggregated ()
IUnogn * controllingUnknown () const
QObject * object () कास्ट
QWidget * widget () कास्ट

विस्तृत विवरण

QAxAggregated वर्ग अतिरिक्त COM इंटरफ़ेस के कार्यान्वयन के लिए एक सार आधार वर्ग है।

अतिरिक्त COM इंटरफ़ेस का समर्थन करने के लिए QAxAggregated और reimplement queryInterface () का एक उपवर्ग बनाएँ। उन COM इंटरफेस से कई वंशानुक्रम का उपयोग करें। कॉल करने के लिए QueryInterface() , AddRef() और Release() को controllingUnknown करने के लिए उन AddRef() इंटरफेस को लागू करें, AddRef() controllingUnknown किया गया है।

यदि आपको ActiveX नियंत्रण लागू करने के लिए QWidget कॉल करने की आवश्यकता है, तो widget () विधि का उपयोग करें। आपको अपने उपवर्ग (जब तक आप QPointer उपयोग नहीं करते हैं) में उस सूचक को संग्रहीत नहीं करना चाहिए, क्योंकि QWidget को किसी भी समय ActiveQt ढांचे द्वारा नष्ट किया जा सकता है।

QAxBindable , QAxFactory और ActiveQt भी देखें

सदस्य समारोह प्रलेखन

[virtual protected] QAxAggregated :: ~ QAxAggregated ()

विध्वंसक को Qt द्वारा आंतरिक रूप से कहा जाता है।

[protected] IUnogn * QAxAggregated :: controlUnogn () कास्ट

ActiveX नियंत्रण के IUnknown इंटरफ़ेस लौटाता है। अपने QAxAggregated उपवर्ग में QAxAggregated इंटरफ़ेस को कार्यान्वित करें इस फ़ंक्शन द्वारा प्रदान किए गए इंटरफ़ेस को QueryInterface() , AddRef() , और Release() को कॉल करें।

HRESULT AxImpl::QueryInterface(REFIID iid, void **iface)
{
    return controllingUnknown()->QueryInterface(iid, iface);
}

ulong AxImpl::AddRef()
{
    return controllingUnknown()->AddRef();
}

ulong AxImpl::Release()
{
    return controllingUnknown()->Release();
}

इन तीन कार्यों को मैन्युअल रूप से घोषित करने और लागू करने के बजाय, आप अपने उपवर्ग की घोषणा में QAXAGG_IUNKNOWN मैक्रो का उपयोग कर सकते हैं।

[protected] QObject * QAxAggregated :: object () const

COM ऑब्जेक्ट को लागू करने के लिए QObject उपवर्ग के लिए एक पॉइंटर लौटाता है। यह फ़ंक्शन 0 पर वापस आ सकता है।

चेतावनी: आपको दिए गए पॉइंटर को स्टोर नहीं करना चाहिए, जब तक कि आप QPointer उपयोग नहीं करते हैं, क्योंकि ActiveQt को किसी भी समय ActiveQt द्वारा नष्ट किया जा सकता है।

[pure virtual] लंबी QAxAggregated :: queryInterface (const QUuid & iid , void ** iface )

अतिरिक्त COM इंटरफ़ेस का समर्थन करने के लिए इस शुद्ध वर्चुअल फ़ंक्शन को फिर से लागू करें। इंटरफ़ेस आइडी का समर्थन करने के लिए इस ऑब्जेक्ट को इंगित करने के लिए iface का मान सेट करें। ध्यान दें कि आपको this सूचक को उपयुक्त सुपरक्लास में डालना होगा।

long AxImpl::queryInterface(const QUuid &iid, void **iface)
{
    *iface = 0;
    if (iid == IID_ISomeCOMInterface)
        *iface = (ISomeCOMInterface*)this;
    else
        return E_NOINTERFACE;

    AddRef();
    return S_OK;
}

मानक COM परिणाम S_OK लौटें (इंटरफ़ेस समर्थित है) या E_NOINTERFACE (अनुरोधित इंटरफ़ेस समर्थित नहीं है)।

चेतावनी: भले ही आपको IUnknown इंटरफ़ेस को लागू करना होगा यदि आप कोई COM इंटरफ़ेस लागू करते हैं, तो आपको अपने क्वेरीइंटरफेस () कार्यान्वयन में IUnaware इंटरफ़ेस का समर्थन नहीं करना चाहिए।

[protected] QWidget * QAxAggregated :: विजेट () कास्ट

ActiveX नियंत्रण को लागू करने वाले QWidget उपवर्ग के लिए एक सूचक लौटाता है। यह फ़ंक्शन 0 पर वापस आ सकता है।

चेतावनी: आपको दिए गए पॉइंटर को स्टोर नहीं करना चाहिए, जब तक कि आप QPointer उपयोग नहीं करते हैं, क्योंकि किसी भी समय ActiveQt द्वारा नष्ट किया जा सकता है।