Вниз
Скачать: CL | DM;

проблема с ActiveKOL, точнее с KOLComObj   Найти похожие ветки 

 
Max Kozlov   (2004-04-22 17:57) [0]

в readme:
- In v1.1.106, events handling fixed (by Alexey Izyumov).
- In v2.0.160, Variants used for case of Delphi6 and higher.

а variants, однако, использует SysUtils. так что размер вылезает за сотню кило сразу.

но не это главное. главная проблема тут:
простенькая программа проверки активности ActiveDesktop"а:

function IsActiveDesktopEnable: Boolean;
const
 CLSID_ActiveDesktop: TGUID = "{75048700-EF1F-11D0-9888-006097DEACF9}";
var
 ActiveDesk: IActiveDesktop;
 ComponentsOpt: TComponentsOpt;
begin
 Result:=False;
 try
   ActiveDesk := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
 except
   on e: Exception do begin
     ShowMessage(e.Message);
     Exit;
   end;
 end;
 ZeroMemory(@ComponentsOpt, SizeOf(TComponentsOpt));
 ComponentsOpt.dwSize := SizeOf(TComponentsOpt);
 ActiveDesk.GetDesktopItemOptions(ComponentsOpt, 0);
 Result := ComponentsOpt.fActiveDesktop;
end;

сразу же генерит Exception(ole error -214722008) на CreateComObject()

аналогичный текст на VCL легко работает.

если использовать ComObj вместо KOLComObj то говорит, что CoInitialize has not been called (кстати с ним размер меньше :)

что чинить ?


 
Max Kozlov   (2004-04-22 19:23) [1]

... однако если в начале вызвать CoInitialize(nil), всё действительно заработало :)
но блин предупреждать надо где-нить...

ну и проблема с Variants осталась.
под D7 программа с KOLComObj занимает кил на 5 больше, чем с ComObj :)
может пора сделать KolVariants ??



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
14-1098683811
syte_ser78
2004-10-25 09:56
2004.11.14
Подарок девушке


4-1097004335
Comp
2004-10-05 23:25
2004.11.14
Не появляются подсказки TOOLTIP на TOOLBAR


1-1099264502
Garfunkel
2004-11-01 02:15
2004.11.14
Динамическое создание компонент


1-1099316514
denis24
2004-11-01 16:41
2004.11.14
Цвет Popupmenu


1-1099394225
Chlavik
2004-11-02 14:17
2004.11.14
var A:Array [0..0] of DWORD; Как получить A[1]?




   Наверх