Здравствуйте, 1234, Вы писали:
1>Здравствуйте коллеги!
1>У меня есть Property Page Shell Extension, беда с ним в том что под XP оно показывается в старом стиле, манифест подключать пробовал — это непомгло (что и неудивительно — это же dll).
1>Как включить поддержку тем XP в shell extension ?
Тут как раз об этом
Здравствуйте, KaSA, Вы писали:
KSA>Здравствуйте, 1234, Вы писали:
1>>Здравствуйте коллеги!
1>>У меня есть Property Page Shell Extension, беда с ним в том что под XP оно показывается в старом стиле, манифест подключать пробовал — это непомгло (что и неудивительно — это же dll).
1>>Как включить поддержку тем XP в shell extension ?
KSA>Тут как раз об этом
Оно не пашет!!! Делал как там написано и разных вариаций попробовал...
НЕ ПАШЕТЪ!!!
Здравствуйте, 1234, Вы писали:
1>Здравствуйте, KaSA, Вы писали:
KSA>>Здравствуйте, 1234, Вы писали:
1>>>Здравствуйте коллеги!
1>>>У меня есть Property Page Shell Extension, беда с ним в том что под XP оно показывается в старом стиле, манифест подключать пробовал — это непомгло (что и неудивительно — это же dll).
1>>>Как включить поддержку тем XP в shell extension ?
KSA>>Тут как раз об этом
1>Оно не пашет!!! Делал как там написано и разных вариаций попробовал...
1>НЕ ПАШЕТЪ!!!
кто-нибудь поможеть
или все затихли ?
Здравствуйте, KaSA, Вы писали:
KSA>Здравствуйте, Аноним, Вы писали:
А>>кто-нибудь поможеть
А>>или все затихли ?
KSA>ИМХО, больше чем microsoft тебе никто не скажет. Там же ясно написано, что технология применима к Shell Extensions.
KSA>Либо ты что-то не правильно делаешь, либо одно из двух.
KSA>ЗЫ:
KSA>Для ясности, неплохо было бы взглянуть на rc-файл и на stdafx.h.
Значит так, на эту тему я находил довольно много интересных сообщений в нете, примерно такого содержания:
Hello,
//====
it is awful! i´ve written a shell extension with a dialog box. The extension
is used by the explorer.exe. I´ve tried severaly things to activate the xp
manifest in the extension but nothing helps.
I´ve tried the following steps.
1. I´ve created a file called "windowsxp.manifest" with the following
contents:
---------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="
urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="SpeedSoft"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>Windows Shell</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
--------------
2. I´ve created a file called "windowsxp.rc" with following content
------------
2 24 "windowsxp.manifest"
------------
2 is the value which i´ve read in the updated documention of MSDN
24 is the RT_MANIFEST
3. I´ve compiled with brcc32 the "windowsxp.rc" file to "windowsxp.res".
I´ve included the "windowsxp.res" resource file "{$R windowsxp.res}"
4. I´´ve tested it but nothing works.
I´ve tried severals steps like the MSDN documentation under the topic "Using
visual styles" and so on. I´ve read all messages on the google groups but no
one has a solution for this problem. I believe Microsoft doesn´t have a
solution, too !
So my simple Question: How to activate the XP Manifest in a ShellExtension
///=========
И таких там очень много, и вобщем-то лекарства предлагают самые различные.
Вот например один из вариантов ответа:
I think the trick involves having your DLL be "isolation aware." One
part of that means using a resource ID of 3 instead of the usual 1 in
your RC file. (An ID of 2 would be for a statically linked library,
which Delphi can't do.)
The other steps involved in being isolation aware seem to be more
complicated. They'd be easy in C since you could simply define the
ISOLATION_AWARE_ENABLED symbol and the compiler would take care of the
rest. It also involves importing a Boolean variable from a linked
module, which is something else Delphi can't do, at least not very
easily. Browsing through WinUser.Inl, in the Platform SDK, should be
quite sobering. I'm sure there is some way to rig Delphi to do a similar
thing, but I have no idea where to begin.
Господа, то что по этому поводу написанно у майкросовт явно недостаточно, если кто-то делал ShellExtension нормально работающие под WinXP не на MFC, и понял что к чему, объясните пожалуйста, или примерчик поместите pls.
Спасибо.
1>У меня есть Property Page Shell Extension, беда с ним в том что под XP оно показывается в старом стиле, манифест подключать пробовал — это непомгло (что и неудивительно — это же dll).Как включить поддержку тем XP в shell extension ?
KSA>Тут как раз об этом
1>Господа, то что по этому поводу написанно у майкросовт явно недостаточно, если кто-то делал ShellExtension нормально работающие под WinXP не на MFC, и понял что к чему, объясните пожалуйста, или примерчик поместите pls.
На самом деле достаточно, как я уже говорил. Итак, что нужно сделать:
1. Создать файл манифеста такого вида:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="YourAppName"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
2. Добавить в файл ресурсов строку вида:
ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "YourAppName.manifest"
3. В stdafx.h (или в любом месте перед windows.h) определить макрос:
#define ISOLATION_AWARE_ENABLED 1
Все...проверено — работает.
ЗЫ:
Заметь, ничего большего, чем написано в MSDN я не сказал.
Здравствуйте, KaSA, Вы писали:
KSA>Здравствуйте, 1234, Вы писали:
1>>Господа, то что по этому поводу написанно у майкросовт явно недостаточно, если кто-то делал ShellExtension нормально работающие под WinXP не на MFC, и понял что к чему, объясните пожалуйста, или примерчик поместите pls.
1>>Спасибо.
KSA>На самом деле достаточно, как я уже говорил. Итак, что нужно сделать:
KSA>1. Создать файл манифеста такого вида:
KSA>KSA><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
KSA><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
KSA><assemblyIdentity
KSA> version="1.0.0.0"
KSA> processorArchitecture="X86"
KSA> name="YourAppName"
KSA> type="win32"
KSA>/>
KSA><description>Your application description here.</description>
KSA><dependency>
KSA> <dependentAssembly>
KSA> <assemblyIdentity
KSA> type="win32"
KSA> name="Microsoft.Windows.Common-Controls"
KSA> version="6.0.0.0"
KSA> processorArchitecture="X86"
KSA> publicKeyToken="6595b64144ccf1df"
KSA> language="*"
KSA> />
KSA> </dependentAssembly>
KSA></dependency>
KSA></assembly>
KSA>
KSA>2. Добавить в файл ресурсов строку вида:
KSA>KSA>ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "YourAppName.manifest"
KSA>
KSA>3. В stdafx.h (или в любом месте перед windows.h) определить макрос:
KSA>KSA>#define ISOLATION_AWARE_ENABLED 1
KSA>
KSA>Все...проверено — работает.
KSA>ЗЫ:
KSA>Заметь, ничего большего, чем написано в MSDN я не сказал.
Я проверю ещё раз. Но тоже самое я делал — неработало.
А то что проверенно-работает — оно на WTL или ж на MFC ?
Здравствуйте, KaSA, Вы писали:
KSA>Здравствуйте, 1234, Вы писали:
1>>Господа, то что по этому поводу написанно у майкросовт явно недостаточно, если кто-то делал ShellExtension нормально работающие под WinXP не на MFC, и понял что к чему, объясните пожалуйста, или примерчик поместите pls.
1>>Спасибо.
KSA>На самом деле достаточно, как я уже говорил. Итак, что нужно сделать:
KSA>1. Создать файл манифеста такого вида:
KSA>KSA><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
KSA><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
KSA><assemblyIdentity
KSA> version="1.0.0.0"
KSA> processorArchitecture="X86"
KSA> name="YourAppName"
KSA> type="win32"
KSA>/>
KSA><description>Your application description here.</description>
KSA><dependency>
KSA> <dependentAssembly>
KSA> <assemblyIdentity
KSA> type="win32"
KSA> name="Microsoft.Windows.Common-Controls"
KSA> version="6.0.0.0"
KSA> processorArchitecture="X86"
KSA> publicKeyToken="6595b64144ccf1df"
KSA> language="*"
KSA> />
KSA> </dependentAssembly>
KSA></dependency>
KSA></assembly>
KSA>
KSA>2. Добавить в файл ресурсов строку вида:
KSA>KSA>ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "YourAppName.manifest"
KSA>
KSA>3. В stdafx.h (или в любом месте перед windows.h) определить макрос:
KSA>KSA>#define ISOLATION_AWARE_ENABLED 1
KSA>
KSA>Все...проверено — работает.
KSA>ЗЫ:
KSA>Заметь, ничего большего, чем написано в MSDN я не сказал.
Благодарствую — действительно работает!!!