Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
6-1121235521
Mefodiy
2005-07-13 10:18
2005.11.06
Как разрешить почту и запретить интернет на Win98?


1-1129365346
Jimm
2005-10-15 12:35
2005.11.06
Как заставить показываться Hint на неактивной форме ?


14-1129545597
sergg
2005-10-17 14:39
2005.11.06
Такой же по качеству ресурс о Buildere?


2-1129316258
Тест
2005-10-14 22:57
2005.11.06
Memo


14-1129202563
Иг_Иг
2005-10-13 15:22
2005.11.06
Ася - Icq