Só pra clarear as idéias....
manifest foi inventado nos tempos do Windows XP.
Serve pra indicar características específicas do aplicativo, pro windows não usar alguma coisa padrão que atrapalhe.
Pode ser arquivo separado ou embutido no EXE.
Em caso de arquivo separado, é com o mesmo nome do EXE.
Exemplo: pra JPA.EXE., criar JPA.EXE.manifest
Código: Selecionar todos
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
Essa parte acima é pra efeito de segurança, indica que o programa vai usar os mesmos direitos do usuário que acionou o aplicativo.
Se não definir isso, o Windows pode querer executar como administrador, o que exige segurança acima do usuário.
Além disso, a partir de uma determinada data, executar como administrador passou a exigir assinatura digital parte da segurança a mais.
Código: Selecionar todos
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssembly>
</dependency>
A parte acima é a que libera visual "mais moderno", pelo menos na época era.
Por exemplo, pro button aceitar ícone + texto, usando apenas API Windows.
Isso pra componentes criados pela API Windows, usando só recursos padrão.
Se for componente criado "na mão", aí não faz diferença.
hwgui SEM isso
hwgui COM isso
Note que tem diferença no calendário, buttons com texto+ícone funciona, contorno de textbox, etc.
A única diferença foi incluir o manifest.
São controles padrão Windows, que o próprio Windows desenha, então o manifest faz diferença.
Vale pra qualquer LIB que use esses controles no padrão Windows., inclusive GTWVG, minigui, etc.