2021年12月18日 星期六

Custom Controls in Win32 API: Visual Styles Application Manifest assembly xmlns InitCommonControls comctl32.DLL

 https://www.codeproject.com/Articles/620045/Custom-Controls-in-Win-API-Visual-Styles

  https://docs.microsoft.com/en-us/answers/questions/199283/use-common-controls-v6-in-a-dll-compiled-using-vc6.html

https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests

https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/schema-root


Custom Controls in Win32 API: Visual Styles

https://www.codeproject.com/Articles/559385/Custom-Controls-in-Win-API-The-Basics
https://www.codeproject.com/Articles/617212/Custom-Controls-in-Win-API-The-Painting
https://www.codeproject.com/Articles/620045/Custom-Controls-in-Win-API-Visual-Styles

Application Manifest

1 RT_MANIFEST path/to/manifest.xml
<?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="*" name="app name" type="win32"/>
    <description>app description</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
              version="6.0.0.0" processorArchitecture="*"
              publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <ms_asmv2:trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <ms_asmv2:security>
            <ms_asmv2:requestedPrivileges>
                <ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false"/>
            </ms_asmv2:requestedPrivileges>
        </ms_asmv2:security>
    </ms_asmv2:trustInfo>
</assembly>
 

COMCTL32.DLL   UXTHEME.DLL        USER32.DLL 


Useless IsThemeActive() and IsAppThemed()

UXTHEME.DLL        USER32.DLL   
Function        Fundamental constant        Function        Fundamental constant   
GetThemeSysBool()        TMT_FLATMENUS        SystemParametersInfo()        SPI_GETFLATMENU   
GetThemeSysColor()                 GetSysColor()            
GetThemeSysColorBrush()                 GetSysColorBrush()            
GetThemeSysFont()        TMT_ICONTITLEFONT        SystemParametersInfo()        SPI_GETICONTITLELOGFONT   
the other ones        SPI_GETNONCLIENTMETRICS   
GetThemeSysInt()                 no counterpart            
GetThemeSysSize()                 GetSystemMetrics()            
GetThemeSysString()                 no counterpart

GetThemeBackgroundContentRect OpenThemeData GetWindowTheme GetThemeIntList _WIN32_WINNT_VISTA
Screenshot of Theme Explorer 


embarcadero Customizing the Windows Application Manifest File

Go Up to Types of Multi-Device Applications You Can Create

Go Up to Deploying Applications - Overview

    API (ApplicationName.manifest)

    Applications Options for Desktop Platforms

    MSDN: Application Manifests

    MSDN: Create and Embed an Application Manifest (UAC)

    Delphi Developers Guide 4K.pdf (Solving DPI problems, creating a custom manifest.)

Identity Management Tools



OpenIAM https://www.openiam.com/
Apache Syncope Syncope - Open Source Identity Management https://syncope.apache.org/
Shibboleth Consortium https://www.shibboleth.net/
WSO2 https://wso2.com/identity-and-access-management/
MidPoint https://evolveum.com/midpoint/
Soffid http://www.soffid.com/
Gluu Gluu Server - Identity and Access Management (IAM) platform https://www.gluu.org/
Keycloak https://www.keycloak.org/index.html
FreeIPA https://www.freeipa.org/page/Main_Page
Central Authentication Service (CAS) https://www.apereo.org/projects/cas
OpenDS - Next generation Directory Service
OpenLdap - Implementation of the Lightweight Directory Access Protocol (LDAP)
kratos - Next-gen identity server (think Auth0, Okta, Firebase) with Ory-hardened authentication, MFA, FIDO2, profile management, identity schemas, social sign in, registration, account recovery, service-to-service and IoT auth
Keycloak - Open Source Identity and Access Management For Modern Applications and Services
SSSD - System Security Services Daemon
OpenDJ - LDAPv3 compliant directory service
389 Directory Server - Powerful OpenSource LDAP
FreeIPA - Identity and Access Management for Linux
Apache Fortress - Identity and Access Management
Mandriva - Identity and Network Management
ApacheDS - Apache Directory Project
LSC engine - LDAP Synchronization Connector
AMX Identity Management - An HR driven Identity and Access Management solution
msf - MFS (Minio Federation Service) is a namespace, identity and access management server for Minio Servers
ForgeRock https://en.wikipedia.org/wiki/ForgeRock
OpenAM https://en.wikipedia.org/wiki/OpenAM
OpenIDM https://en.wikipedia.org/wiki/OpenIDM
OpenDJ https://en.wikipedia.org/wiki/OpenDJ
https://en.wikipedia.org/wiki/Category:Identity_management_systems










How to make a Delphi application run as an administrator? Delphi High DPI switch between own scaling and Windows scaling

 https://itqna.net/questions/5331/how-make-delphi-application-run-administrator

  

Tip: To learn more about custom Manifest file you can give   a look at this Embarcadero link : Customizing the Windows   Application Manifest   File

 

https://docwiki.embarcadero.com/RADStudio/Tokyo/en/Customizing_the_Windows_Application_Manifest_File

 Customizing the Windows Application Manifest File

 

YOU CAN USE THIS FILE HERE

If you prefer you can use this ready, just do the following:

Content of the manifest file

  • Create a text file and paste the content below
  • Save in the folder of your project with the name you prefer, as long as you have the .manifest extension, the most common is that the file is named Manifest.manifest
  •  

     

     

    https://en.wikipedia.org/wiki/Manifest_file

     Windows Application Manifest File       name="Microsoft.Windows.Common-Controls"

     

     

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <dependency>
       <dependentAssembly>
         <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           publicKeyToken="6595b64144ccf1df"
           language="*"
           processorArchitecture="*"/>
       </dependentAssembly>
     </dependency>
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
       <security>
         <requestedPrivileges>
           <requestedExecutionLevel
             level="asInvoker"
             uiAccess="false"/>
           </requestedPrivileges>
       </security>
     </trustInfo>
    </assembly>

     

    // Set DPI Awareness depending on a registry setting
    with TRegIniFile.create('SOFTWARE\' + SRegName) do
    begin
      setting := readInteger('SETTINGS', 'scale', 0);
      Free;
    end;
    handle := LoadLibrary('shcore.dll');
    if handle <> 0 then
    begin
      setProcessDPIAwareness := GetProcAddress(handle, 'SetProcessDpiAwareness');
      if Assigned(setProcessDPIAwareness) then
      begin
        if setting < 2 then
          // setting <2 means no scaling vs Windows
          setProcessDPIAwareness(0)
        else
          // setting 2: 120%, 3: 140% vs. Windows
          // The actual used scaling factor multiplies by windows DPI/96
          setProcessDPIAwareness(1);
      end;
      FreeLibrary(handle);
      // Get windows scaling as Screen.PixelsPerInch was read before swiching DPI awareness
      // Our scaling routines now work with WinDPI instead of Screen.PixelsPerInch
      WinDPI:= Screen.MonitorFromWindow(application.handle).PixelsPerInch;
    end;
     
     
    Mage.exe (Manifest Generation and Editing Tool) - Microsoft ...
    https://docs.microsoft.com › dotnet › tools
    The Manifest Generation and Editing Tool (Mage.exe) is a command-line tool that supports the creation and editing of application and deployment ...
     文件擴展名首頁 / 所有軟體 / Heaventools Software / Heaventools Application Manifest Wizard

    Heaventools Application Manifest Wizard
    開發者名稱: Heaventools Software
    最新版本: 1.99 R6
    軟體類別: 開發者工具
    軟體子類別: XML 工具
    操作系統: Windows

    軟體概述

    應用程序清單嚮導是一個工具,允許遺留應用程序從Windows XP或Vista的共同控制的華而不實的新面貌受益。這個工具允許除了插入需要管理員級別為它添加UAC清單。這使得提高管理員對Windows 7和Vista的應用程序運行。這使得應用程序的操作行為等同於Windows XP。 

    Pythia 程序是用於在高能碰撞中生成事件的標準工具 物理模型

     Pythia 程序是用於在高能碰撞中生成事件的標準工具,包括一組連貫的物理模型,用於從少體硬過程到復雜的多粒子最終狀態的演化。 它包含一個硬過程庫、初始和最終狀態部分子簇射的模型、硬過程和部分子簇射之間的匹配和合併方法、多部分相互作用、束殘餘、弦碎裂和粒子衰變。 它還具有一組實用程序和多個與外部程序的接口。 Pythia 8.2 是從 Fortran 完全重寫為 C++ 之後的第二個主要版本,現在已經成熟到可以完全替代大多數應用程序,尤其是 LHC 物理研究。 許多新功能應該允許改進數據描述。

    https://pythia.org/

    https://vincia.hepforge.org/
     
    PYTHIA  JETSET   high energy physics event

    http://www.phys.ufl.edu/~rfield/cdf/CDF_minbias.html

    https://en.wikipedia.org/wiki/Event_generator

     

     

    List of event generators
    The major event generators that are used by current experiments are:
    Hadronic event generators[3]
        PYTHIA (formerly Pythia/Jetset)
        HERWIG
        ISAJET
        SHERPA
    Multi-purpose parton level generators
        MadGraph5 (able to run directly on the web site after registration and an email to the author)
        Whizard
     


    https://en.wikipedia.org/wiki/Event_generator

    Event generators are software libraries that generate simulated high-energy particle physics events. They randomly generate events as those produced in particle accelerators, collider experiments or the early universe. Events come in different types called processes as discussed in the Automatic calculation of particle interaction or decay article.

    Doxygen Graphviz Doxygen Flow Graph Code Flowgen Doxygen Graph Python Sphinx UML diagram


    Flow Graph Code
    Flowchart-Based Documentation Framework  
     visual documentation UML activity diagram flowchart annotated sources
     LibClang
    PlantUML Dextool Mutate
    https://en.wikipedia.org/wiki/PlantUML

    Flowgen to the Vincia code
    https://vincia.hepforge.org/
     The VINCIA code is a plugin to the high-energy physics event generator PYTHIA 8.2.
    Starting from PYTHIA 8.3, VINCIA will be distributed as part of the PYTHIA source code, and hence this standalone plugin will not be relevant to PYTHIA 8.3 users.
    VINCIA is based on the dipole-antenna picture of Quantum Chromodynamics (QCD) and focusses on describing jets and jet substructure with high precision.

    https://clang.llvm.org/
    https://clang.llvm.org/get_started.html
    UMLet 14.3
    Free UML Tool for Fast UML Diagrams https://www.umlet.com/

    https://plantuml.com/


    https://github.com/noware/clang-cindex-python3
    This is simply clang's Python bindings (clang.cindex) ported to Python 3.
     Please see http://llvm.org/svn/llvm-project/cfe/trunk/bindings/python/ for the original project.

     

     


    https://en.wikipedia.org/wiki/Category:Free_documentation_generators   Python Sphinx Documentation Generator Documentation Generation

     

    https://www.saashub.com/compare-doxygen-vs-sphinx-documentation-generator

    GitBook - Modern Publishing, Simply taking your books from ideas to finished, polished books.

    Slate API Docs Generator - Create beautiful, intelligent, responsive API documentation.

    MkDocs - Project documentation with Markdown.

    ReadTheDocs - Spend your time on writing high quality documentation, not on the tools to make your documentation work.

    Confluence - Confluence is content collaboration software that changes how modern teams work

    DocFX - A documentation generation tool for API reference and Markdown files!


    Python Sphinx Documentation Generator
    Overview — Sphinx documentation
    https://www.sphinx-doc.org
    Sphinx is a tool that makes it easy to create intelligent and beautiful documentation, written by Georg Brandl and licensed under the BSD license. 



    source code generator hierarchy graph Class hierarchy dependency diagram generator



    https://www.sourcetrail.com/ source code generator hierarchy graph Class hierarchy dependency diagram generator
     as in KCachegrind – and evolution visualization – for repository analysis) in KDevelop. https://liveblue.wordpress.com/2009/06/17/visualize-your-code-in-kdevelop/
    https://github.com/shreyasbharath/cpp_dependency_graph
    https://github.com/tomtom-international/cpp-dependencies

    Graphviz is open source graph visualization software. http://www.graphviz.org/

    https://www.doxygen.nl/index.html
    Doxygen + GraphViz (for pictures, doxygen requires GraphViz)

    Code Graph
    Yiubun Auyeung
    https://marketplace.visualstudio.com/items?itemName=YaobinOuyang.CodeAtlas

    JetBrains
    Hierarchy window | ReSharper https://www.jetbrains.com/help/resharper/Reference__Windows__Type_Hierarchy_Window.html#tree

    Is there a control to visualize mesh topology in c#?
    看看ndepend(http://www.ndepend.com/)。除了為程式碼庫計算各種度量之外,它還可以視覺化依賴項。有試用版。
    這是一張截圖(在http://www.ndepend.com/Features.aspx#DependenciesView上),可能正是你想要的:http://www.ndepend.com/Res/DiagramBoxAndArrowGraphBig.jpg
    https://www.ndepend.com/docs/visual-studio-dependency-graph#Call
    https://www.ndepend.com/docs/visual-studio-dependency-graph#Inherit
    https://www.ndepend.com/docs/validating-cqlinq-code-rules-in-visual-studio
    https://www.ndepend.com/docs/customize-ndepend-report#CQLRule

    https://www.scitools.com/ 


    java
    https://github.com/amitjoy/dependency-graph-osgi
    visualize OSGi Dependencies in a graph
        https://bnd.bndtools.org
        http://graphstream-project.org

    source code hierarchy diagram generator Graph doxygen documentation uml create Dependency Graphs for Header Files

     

    --------Cscope   http://cscope.sourceforge.net/cscope_man_page.html   
    screen-oriented tool that allows the user to browse through C source
    is a developer's tool for browsing source code. It has an impeccable Unix pedigree, having been originally developed at Bell Labs back in the days of the PDP-11. Cscope was part of the official AT&T Unix distribution for many years, and has been used to manage projects involving 20 million lines of code!
    In April, 2000, thanks to the Santa Cruz Operation, Inc. (SCO) (since merged with Caldera), the code for Cscope was open sourced under the BSD license.
    --------gtags-cscope is an interactive, screen-oriented tool that allows the user to browse through source files


    GNU global source-code tag system
    Tama Communications Corporation; http://tamacom.com
     GNU Global source code tagging system https://www.tamacom.com/handbook.html
     GNU GLOBAL handbook https://www.tamacom.com/global.html
     
    --------Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as "vi" with most UNIX systems and ...
    --------Elvis Text Editor Elvis is an enhanced clone of the vi text editor,
    --------GNU Emacs Emacs is the advanced, extensible, customizable, self-documenting editor. This manual describes how to edit with Emacs and some of the ways to customize it; ...
    --------less less is a terminal pager program on Unix, Windows, and Unix-like systems used to view (but not change) the contents of a text file one screen
     
    Doxygen http://www.stack.nl/~dimitri/doxygen/
    http://www.doxygen.nl
    Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such ...


    Gprof performance analysis tools http://www.gnu.org/manual/gprof-2.9.1/gprof.html. Gprof is a performance analysis tool for Unix applications. It used a hybrid of instrumentation and sampling[1] and was created as an extended version of the older "prof" tool. Unlike prof, gprof is capable of limited call graph collecting and printing


    GNU cflow analyzes a collection of C source files and prints a graph, charting control flow within the program.
    GNU cflow Exuberant Ctags Ctags is a programming tool that generates an index (or tag) file



    Graphviz http://www.graphviz.org/ https://en.wikipedia.org/wiki/Graphviz Graphviz (short for Graph Visualization Software)  








     

    Dynamic Tracing DTrace SystemTap OpenResty XRay stappxx toolkit AddressSanitizer

     Dynamic Tracing 

    DTrace SystemTap

     OpenResty XRay 

    stappxx 

     toolkit AddressSanitizer

     

    Dynamic Tracing DTrace SystemTap OpenResty XRay 

     

     

    https://wiki.st.com/stm32mpu/wiki/Linux_tracing,_monitoring_and_debugging

    https://www.brendangregg.com/perf.html

    https://en.wikipedia.org/wiki/DTrace

    https://en.wikipedia.org/wiki/SystemTap


    https://en.wikipedia.org/wiki/Ktrace

    of BSD Unix and Mac OS X that traces kernel interaction

    strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with interactions between processes and ...

    2.5 Code Spelunking | Systems Perfomance Advice for ... https://www.informit.com › articles › article  — ktrace. This is a standard tool on open source operating systems. The name stands for ”kernel trace.” It will give you a listing of all the ...