Форум: "Основная";
Текущий архив: 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