Sdílet prostřednictvím


Chyba kompilátoru C3705

'function' : nemůže najít rozhraní událostí

Poznámky

Je nutné definovat rozhraní událostí pro použití událostí modelu COM. 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. Pokud chcete tuto chybu opravit, odkomentujte definici IEvents rozhraní v ukázkovém kódu.

Example

Následující příklad vygeneruje C3705:

// C3705.cpp
// compile with: /c
#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 4 lines to resolve.
// [object, uuid("00000000-0000-0000-0000-000000000003")]
// __interface IEvents : IUnknown {
//    HRESULT event1([in] int i);
// };

[dual, uuid("00000000-0000-0000-0000-000000000001")]
__interface IBase {
   HRESULT fireEvents();
};

[coclass, event_source(com), uuid("00000000-0000-0000-0000-000000000002")]
class CEventSrc : public IBase {
public:
   __event __interface IEvents;   // C3705 uncomment IEvents to resolve
   HRESULT fireEvents() {
      HRESULT hr = IEvents_event1(123);
      return hr;
   }
};