Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

НЕ МОГУ СОЗДАТЬ COM-ОБЬЕКТ ЧЕРЕЗ CREATECOMOBJECT   Найти похожие ветки 

 
STAINER   (2003-05-02 01:42) [0]

Привет Знатоки!

Есть вопрос!
Мне нужно создать COM-ОБЬЕКТ:

//BUTTON_CLICK

var
A:ISHELLBROWSER;

BEGIN

A:=CreateComObject ( CLSID ИНТЕРФЕЙСА ) AS ISHELLBROWSER;

НО В МОДУЛЕ SHLOBJ НЕТ CLSID_SHELLBROWSER А ЕСТЬ IID_ISHELLBROWSER

в документации к CreateComObject сказано что ей нужно передать именно CLSID ИНТЕРФЕЙСА, а не IID_, ПОЭТОМУ ПРИ ЗАПУСКЕ КОМПИЛЯТОР ВЫДАЁТ ОШИБКУ: КЛАСС НЕ ЗАРЕГИСТРИРОВАН!!

ЧТО ДЕЛАТЬ?????????????

СПАСИБО


 
nikkie   (2003-05-02 11:48) [1]

Очевидно ты не очень четко представляешь разницу между Class ID и Interface ID. Интерфейс аналогичен абстрактному классу. То есть он описывает набор методов, но никак их не реализует. Как нельзя создать экземпляр абстрактного класса, так нельзя создать экземпляр интерфейса. Конкретный интерфейс может быть реализован многими коклассами, и наоборот - один кокласс часто реализует много интерфейсов. Кокласс идентифицируется через CLSID, его-то и ждет CreateComObject.

>ЧТО ДЕЛАТЬ?????????????
1. не кричать
2. подумать самому, учитывая то, что я написал + почитав в MSDN про IShellBrowser
3. объяснить что именно ты пытаешься сделать


 
STAINER   (2003-05-02 15:59) [2]

Привет nikkie!

Ты абсолютно прав! Я не просто не представляю разницу между Class ID и Interface ID, а наверное даже не понимаю.
Вроде бы документации выше крыши. Нов том то и дело что, мне так кажется рассматриваются одни и те же примеры – создание ярлыков и Iactivedesktop, где есть clsid и выглядит это всё следующим образом:
ActiveDesktop:IActiveDesktop;
Begin
ActiveDesktop:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
А дальше уже можно пользоваться методами IactiveDesktop (setwallpaper,getwallpaper……)
Тут мне всё понятно CLSID берётся из shlobj и находится в реестре HKEY_CLASSES_ROOT\ CLSID

А что делять с Ishellbrowser или подобными интер-сами делать не знаю (толи нето читал, толи не там листал?)

А пытаюсь я сделать следующее:
Мне нужно добраться до метода (функции) IshellBrowser :: SetToolbarItems
(наверное вы уже поняли зачем мне эта функция)

Если вы знаете как мне про инить ISHELLBROWSER НУ ИЛИ ДРУГОЙ ИНТЕРФЕЙС ( ДЛЯ ПРИМЕРА : IOLEWINDOW ИЛИ ЕЩЁ ЧТО-НИБУДЬ)
Буду вам признателен.!


 
nikkie   (2003-05-02 22:21) [3]

>А что делять с Ishellbrowser или подобными интер-сами делать не знаю (толи нето читал, толи не там листал?)

Читаем MSDN:

IShellBrowser
When to Use
When implementing a namespace extension use the IShellBrowser implementation that is passed to IShellView::CreateViewWindow to communicate with Windows Explorer.

По-русски: когда ты будешь реализовывать namespace extension, тебе передадут IShellBrowser. Иных способов использования этого интерфейса документация не предполагает.

Мне нужно добраться до метода (функции) IshellBrowser :: SetToolbarItems
(наверное вы уже поняли зачем мне эта функция)


Извини, я не понял зачем... Ты описываешь метод решения, как ты его себе представляешь. Но этот метод никогда и не заработает. Опиши саму задачу - тогда тебе могут подсказать решение.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-7460
clickmaker
2003-06-20 14:24
2003.07.03
record как out-параметр в методах IAppServer


1-7485
Max_
2003-06-16 15:29
2003.07.03
Индекс пункта меню!


4-7768
Great_Lesh
2003-05-01 09:41
2003.07.03
Заголовочный файл CreateProcessWithLogonW


14-7612
Injustic
2003-06-18 15:56
2003.07.03
Отключить кнопки при наборе


1-7418
Zelius
2003-06-22 20:33
2003.07.03
Как у TPageControl а убить бордер, что бы он не рисовался?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский