Подключение к событиям .NET из С++
От: Mishka Норвегия  
Дата: 14.05.02 10:56
Оценка:
Пишу на С# dll:
using System;
using System.Reflection;
namespace Library
{
    public delegate void MyEventHandler();
    public interface ITest
    {
        event MyEventHandler Click;
        int X();
    }
    public class TestComponent : ITest
    {
        public event MyEventHandler Click;
        public int X()
        {
            if (Click != null)
                Click();
            return 100;
        }
    }
}


Делаю из всего этого COM-объект. И потом пытаюсь его использовать в С++:
#include <windows.h>
#include <iostream>
#include <comdef.h>
#import "Library.tlb" raw_interfaces_only
using namespace Library;
int main()
{
    if (FAILED(CoInitialize(NULL))) return 0;
    _bstr_t bstrCLSID = "Library.TestComponent";
    CLSID   clsidTest;
    ITest* pITest;
    if (FAILED(CLSIDFromProgID (bstrCLSID,&clsidTest))) return 0;
    if (FAILED(CoCreateInstance(clsidTest, 0, CLSCTX_ALL, __uuidof(ITest), (void**)&pITest))) return 0;
    pITest->add_Click(...);
    long i;
    pITest->X(&i);
    pITest->remove_Click(...);
    std::cout << i << std::endl;
    pITest->Release();
    CoUninitialize();
    return 0;
}

Так вот вопрос: что нужно передавать в функциях add_Click(...) и remove_Click(...)?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.