C # эквивалент этого кода C ++ - PullRequest
0 голосов
/ 21 сентября 2009

Есть ли C # эквивалент кода ниже?

 HRESULT hr;
    ActiveXSite* pSite;
    pSite = CAxWindowlessHost<CMainDlg>::CreateControlSite(L"AgControl.AgControl", NULL, IDC_AGCONTROL1);
    if ( pSite != NULL )
    {
        // disable right-click!
        pSite->SetAllowRClick(false);
        // set moniker URL
        CComBSTR bstrUrl("file:///C:/Temp/SilverlightDemo.xap");
        pSite->SetUrl(bstrUrl);

        PropertyParams props;
        props.push_back( PropertyParam(L"Windowless", L"true") );
        props.push_back( PropertyParam(L"MinRuntimeVersion", L"2.0.31005.0") );
        props.push_back( PropertyParam(L"Source", static_cast<LPCWSTR>(bstrUrl)) );
        props.push_back( PropertyParam(L"InitParams", L"") );
        hr = pSite->ActivateAx(rc, false, props);
    }

Ответы [ 2 ]

2 голосов
/ 21 сентября 2009

Похоже, вы хотите встроить приложение silverlight в собственное приложение для настольного компьютера. Я сам этого не делал, но, похоже, это как-то связано с

Хост Silverlight в Windows. Формы ...

Также попробуйте поискать в Google "встраивание серебряного света в winforms". Одна из возможностей - встроить элемент управления веб-браузера и загрузить в него приложение silverlight.

PS: Конечно, нет прямого эквивалента вашего кода, поскольку ATL - это технология C ++ ...

0 голосов
/ 21 сентября 2009

Помимо довольно извращенного подхода к созданию строки для транскрипции строк с использованием P / Invoke, ожидаемый способ использования собственных COM-объектов из .net - через Runtime Callable Wrapper

...