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

Вниз

ProgIdToClassID ()   Найти похожие ветки 

 
kblc ©   (2005-10-15 16:25) [0]

Уважаемые мастера, подскажите мне пожалуйста, почему такое возможно:
 ClassIdToProgID(Class_Server) возвращает App.Server, а
 ProgIDToClassID("App.Server") возвращает EOleException ("Недопустимая строка с указанием класса") (!!!!)
 Как такое вообще возможно? (Эта штука у меня случилась на другом компе, т.е. не на том где ведётся разработка)

 П.С. Вот код:

 try
   CoInitialize(nil);
   MainServer:=CreateComObject(ProgIdTpClassID("App.Server")) AS IAppServer;
   ...
 except
   on E: exception do
   ...
 end;
...


 
kblc ©   (2005-10-15 23:17) [1]

Уважаемые мастера, неужели никто не знает в чём тут дело?


 
DrPass ©   (2005-10-16 02:22) [2]

Думаю, дело в том, что
HRESULT CLSIDFromProgID(
 LPCOLESTR lpszProgID,
 LPCLSID pclsid
);
вроде как принимает ProgID в виде обычной строки, а
function ProgIDToClassID(const ProgID: string): TGUID;
begin
 OleCheck(CLSIDFromProgID(PWideChar(WideString(ProgID)), Result));
end;
почему-то пытается подсунуть ей юникод


 
kblc ©   (2005-10-16 10:42) [3]

но разве делфи сама не передаёт WideString когда я делаю так: ProgIDToClassID("App.Server")?
 Я совсем уже сбился с ног... такого ведь в принципе не должно быть?


 
Lamer@fools.ua ©   (2005-10-16 12:26) [4]

>>DrPass ©   (16.10.05 02:22) [2]

typedef WCHAR OLECHAR;
typedef /* [string] */ OLECHAR *LPOLESTR;
typedef /* [string] */ const OLECHAR *LPCOLESTR;


 
DiamondShark ©   (2005-10-16 14:10) [5]

Криво зарегемтрирован класс


 
kblc ©   (2005-10-16 14:19) [6]

regsrv32.exe App.Serev.dll
Как он может быть Криво зарегестрирован?
Можно об этом попордробнее?
И ещё тогда такой вопрос:  Как регистрируется класс, кроме как записью в реестре? (HKCR\CLSID\{GUID})


 
kblc ©   (2005-10-16 17:25) [7]

Неужели никто не подскажет?


 
DrPass ©   (2005-10-16 17:46) [8]


> Lamer@fools.ua ©   (16.10.05 12:26) [4]

А в каком хедере оно описано? Я так и не нашел


 
Lamer@fools.ua ©   (2005-10-16 18:15) [9]

WTypes.h

Кстати, я обманул. Там условие ещё стоит:
#if defined(_WIN32) && !defined(OLE2ANSI)


 
kblc ©   (2005-10-16 19:54) [10]

кхм... а мне то что-нибудь подскажете?


 
kblc ©   (2005-10-16 22:34) [11]

> DiamondShark ©   (16.10.05 14:10) [5]
Так как мне его "правильно" зарегестрировать?


 
DiamondShark ©   (2005-10-16 23:17) [12]


>   Как регистрируется класс, кроме как записью в реестре?
>  (HKCR\CLSID\{GUID})

Ещё записью
HKCR\<ProgID>\CLSID



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

Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
2-1128595845
norwikh
2005-10-06 14:50
2005.11.06
В Win98 проекты ведут себя весьма странно


4-1125771215
GuAV
2005-09-03 22:13
2005.11.06
Сшная структура из MSDN - как понимать такие поля ?


2-1129119784
Del_programmer
2005-10-12 16:23
2005.11.06
Динамика


4-1125318964
Uran
2005-08-29 16:36
2005.11.06
Разрешения в реестре


2-1129301519
intel
2005-10-14 18:51
2005.11.06
удаление файла





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