информационная безопасность
без паники и всерьез
 подробно о проекте
Все любят медSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Хакеры начали эксплуатировать критическую... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
OLE/COM 15.11.01 11:49  
Автор: BOBAH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как программно (С++) узнать установлен и зарег-н ли определенный COM-сервер?
И еще вопрос.
В своей проге использую ScriptControl.
Соответственно, делаю все на базе MFC:

CoInitialize(NULL);
pScriptControl= new IScriptControlPtr(__uuidof(ScriptControl));
........................................
pScriptControl->Run(FunctionName, &args);

Как сделать это же не пользуясь MFC?
OLE/COM 15.11.01 22:54  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
> Как программно (С++) узнать установлен и зарег-н ли
> определенный COM-сервер?
C++ sdes` ni prichem ispolzuesh Win32 API (OLE)

elsi ty znaesh progig to ispolzuii foo:
hr = CLSIDFromProgId(L"MSScriptControl.ScriptControl.1",&clsid);

esli znesh naoborot classid to:
hr = ProgIDFromCLSID(...);

elsi class zaregestrirovan to hr == S_OK

A voobcheto vse chto eti funccii delaut eto smotriat v registri HKEY_CLASS_ROOT; i tam vsia informacia ob etom objecte :
path, threading model, progid, version, typelib esli suchestvuet i t. d.
tak chto mozhesh napisat` funciu kotoraiy budet proveriat` vse chto ty hochesh is registry.

> И еще вопрос.
> В своей проге использую ScriptControl.
> Соответственно, делаю все на базе MFC:
>
> CoInitialize(NULL);
> pScriptControl= new
> IScriptControlPtr(__uuidof(ScriptControl));
> ........................................
> pScriptControl->Run(FunctionName, &args);
>
> Как сделать это же не пользуясь MFC?

CoInitialize(NULL);
CLSID clsid;
HRESULT hr;
IScriptControl *pScriptCtr;
hr = CLSIDFromProgId(L"MSScriptControl.ScriptControl.1",&clsid);
if(SUCCEEDED(hr))
{
    hr = CoCreateInstance(clsid, NULL, CLSCTX_SERVER,IID_IScriptControl,(void**)&pScriptCtr);
    if(SUCCEEDED(hr))
    {
       hr =  pScriptCtr->Run(FunctionName, &args);
       //BCE chudesa sdes`. . . 
        //. . .
        pScriptCtr->Release();
    };
}
CoUnInitialize();

---
Спасибо, сейчас попробую. 16.11.01 12:02  
Автор: BOBAH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Сенькаю! И как я сам не догадался... :) 16.11.01 11:02  
Автор: BioUnit Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach