Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание GlobalInterfaceTable

1.8K
20 ноября 2009 года
Arkady
153 / / 18.12.2007
Приветствую,

Появилась необходимость воспользоваться GlobalInterfaceTable. MSDN говорит, что правильно это делать так:

 
Код:
IGlobalInterfaceTable* gp_GIT;

HRESULT hr = CoCreateInstance(CLSID_StdGlobalInterfaceTable,
            NULL, CLSCTX_LOCAL_SERVER, IID_IGlobalInterfaceTable, (void **)&gp_GIT);
if (FAILED(hr))
{
            char XXX[30];
            MessageBox(NULL, itoa(hr, XXX, 16), "sdf", MB_OK);
}

У меня возвращает 80040154, что в winerror.h соответствует:
#define REGDB_E_CLASSNOTREG _HRESULT_TYPEDEF_(0x80040154L)

Кто-нибудь знает, почему моя таблица интерфейсов не инициализируется? Какой класс надо зарегистрировать и где? :(

(как и советует MSDN, я включил uuid.lib в проект)
14
20 ноября 2009 года
Phodopus
3.3K / / 19.06.2008
Но в MSDN пример с CLSCTX_INPROC_SERVER
1.8K
20 ноября 2009 года
Arkady
153 / / 18.12.2007
Потому что там рассматривается пример с сервером в DLL, а у меня внешний экзешник, поэтому так...
14
20 ноября 2009 года
Phodopus
3.3K / / 19.06.2008
А вам не кажется что своим кодом вы пытаетесь создать объект во внешнем, по отношению к вашему, адресном пространстве? Тоесть создать еще один процесс?
1.8K
20 ноября 2009 года
Arkady
153 / / 18.12.2007
Цитата: Phodopus
А вам не кажется что своим кодом вы пытаетесь создать объект во внешнем, по отношению к вашему, адресном пространстве? Тоесть создать еще один процесс?



Судя по-всему, Вы правы. По крайней мере с INPROC функция отрабатывается без проблемы.
Спасибо!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог