Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'function' : musí být rozhraní COM pro vyvolání událostí modelu COM.
Poznámky
Rozhraní událostí, které používáte k vyvolání událostí modelu COM, musí být rozhraní com. V této situaci by mělo být rozhraní definováno pomocí atributu Visual C++ nebo importováno pomocí #import z knihovny typů s atributem #import embedded_idl.
Všimněte si, že řádky hlavičkových souborů ATL uvedené v následujícím příkladu jsou vyžadovány pro použití událostí modelu COM. Chcete-li tuto chybu opravit, proveďte IEvents (rozhraní událostí) rozhraní MODELU COM použitím jednoho z následujících atributů definice rozhraní: objekt, duální nebo dispinterface.
Pokud je rozhraní ze souboru hlaviček generovaného midl, kompilátor ho nerozpozná jako rozhraní MODELU COM.
Example
Následující příklad vygeneruje C3706:
// C3706.cpp
// compile with: /c
// C3706 expected
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
[module(dll, name="idid", uuid="12341234-1234-1234-1234-123412341234")];
// Uncomment the following line to resolve.
// [object, uuid="12341234-1234-1234-1234-123412341237"]
__interface IEvents : IUnknown {
HRESULT event1(/*[in]*/ int i); // uncomment [in]
};
[dual, uuid="12341234-1234-1234-1234-123412341235"]
__interface IBase {
HRESULT fireEvents();
};
[coclass, event_source(com), uuid="12341234-1234-1234-1234-123412341236"]
class CEventSrc : public IBase {
public:
__event __interface IEvents;
HRESULT fireEvents() {
HRESULT hr = IEvents_event1(123);
return hr;
}
};