Главная страница
    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.009 c
8-7552
MegaLexx
2003-03-20 20:07
2003.07.03
Скины вручную


1-7387
Delphin
2003-06-22 23:21
2003.07.03
Как минимизировать форму при запуске программы?


14-7687
Vlad Oshin
2003-06-17 10:05
2003.07.03
Задачка :)


1-7529
noteens
2003-06-09 20:25
2003.07.03
Word+Delphi


3-7337
Man
2003-06-09 19:09
2003.07.03
видеть формат ввода





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский