|
| 1 | +--- |
| 2 | +dl-file-prefix: "dd-vibin-" |
| 3 | +layout: "codelib-tplt" |
| 4 | +group: lib |
| 5 | +priority: 3.5 |
| 6 | +version: No releases yet |
| 7 | +release-date: N/a |
| 8 | +platforms: ["Win32"] |
| 9 | +frameworks: ["VCL", "FMX"] |
| 10 | +compatibility: "Delphi XE and later" |
| 11 | +title: "Binary Version Information Manipulation Units" |
| 12 | +precis: "Classes to manipulate binary Windows version information." |
| 13 | +summary: "UNDER DEVELOPMENT: Classes to read, manipulate and write binary Windows version information, bypassing the Windows API." |
| 14 | +meta-title: "Delphi VCL & FMX classes to read, manipulate and write binary Windows version information." |
| 15 | +meta-desc: "Delphi Pascal VCL & FMX classes to read, manipulate and write binary Windows version information, bypassing the Windows API. Requires Delphi XE & later." |
| 16 | +download-base-url: "https://sourceforge.net/projects/ddablib/files/vibin/" |
| 17 | +repo-url: "https://github.com/ddablib/vibin" |
| 18 | +docs-url: "https://lib-docs.delphidabbler.com/VIBin/" |
| 19 | +want-header-buttons: false |
| 20 | +status: "current" |
| 21 | +--- |
| 22 | +{% assign dl-file = page.dl-file-prefix | append: page.version | append: ".zip" %} |
| 23 | +{% assign dl-url = page.download-base-url | append: dl-file %} |
| 24 | + |
| 25 | +<section class="panel panel-default"> |
| 26 | + |
| 27 | + <div class="panel-heading"> |
| 28 | + <h2 class="panel-title"> |
| 29 | + Overview |
| 30 | + </h2> |
| 31 | + </div> |
| 32 | + |
| 33 | + <div class="panel-body"> |
| 34 | + <p class="alert alert-danger glyph"> |
| 35 | + This code is in development and has not yet been released. |
| 36 | + </p> |
| 37 | + <p> |
| 38 | + The Binary Version Information Manipulation Units provide a set of classes that can be used to read, manipulate and write Windows version information in its raw binary form. This is the form used to store version information in Windows executables and resource files. |
| 39 | + </p> |
| 40 | + <p> |
| 41 | + The advantage of using this code over the Windows API for reading version information is that the code can cope with badly formed version information that would defeat the API routines. Furthermore, this code can enumerate the contents of string tables and list and access non-standard string table entries. It also works with string tables in multiple languages. |
| 42 | + </p> |
| 43 | + |
| 44 | + <h3 data-toggle="collapse" data-target="#demo" class="collapsible collapsed"> |
| 45 | + Demo code |
| 46 | + </h3> |
| 47 | + |
| 48 | + <div id="demo" class="collapse"> <!-- begin collapsible #demo section --> |
| 49 | + <p> |
| 50 | + Two programs are provided that show how to use classes made available by the <code>vibin</code> project: |
| 51 | + </p> |
| 52 | + <ol> |
| 53 | + <li> |
| 54 | + <code>ResRWDemo</code> - demonstrates how to read from and write to 32 bit version information resources within binary resource files. |
| 55 | + </li> |
| 56 | + <li> |
| 57 | + <code>VIReaderDemo</code> - demonstrates how to read 32 bit version information from executable programs or DLLs. |
| 58 | + </li> |
| 59 | + </ol> |
| 60 | + <p> |
| 61 | + You should the read demo source code alongside the user guide: the two are complementary. |
| 62 | + </p> |
| 63 | + </div> <!-- /#demo --> |
| 64 | + </div> |
| 65 | + |
| 66 | +</section> |
| 67 | + |
| 68 | +<section class="panel panel-default"> |
| 69 | + |
| 70 | + <div class="panel-heading"> |
| 71 | + <h2 class="panel-title"> |
| 72 | + Get The Code |
| 73 | + </h2> |
| 74 | + </div> |
| 75 | + |
| 76 | + <div class="panel-body"> |
| 77 | + <!-- |
| 78 | + <p> |
| 79 | + You can download the latest version of the <em>{{page.title}}</em> directly from SourceForge as <code>{{ dl-file }}</code>. |
| 80 | + </p> |
| 81 | + <p class="text-center"> |
| 82 | + <a class="btn btn-primary" role="button" href="{{ dl-url }}" aria-label="Go to SourceForge and download latest version automatically">Download <span class="hidden-xs">release </span>v{{ page.version }}<span class="hidden-xs"> from SourceForge</span></a> |
| 83 | + </p> |
| 84 | + <p> |
| 85 | + The <em>{{ page.title }}</em> source code is hosted in the <a href="{{ page.repo-url }}" aria-label="Link to the ddablib/vibin repository on GitHub"><code>ddablib/vibin</code></a> GitHub repository. You can <code>git clone</code> or fork the repository as required. |
| 86 | + </p> |
| 87 | + --> |
| 88 | + <p class="alert alert-danger glyph"> |
| 89 | + The source code will shortly be available on GitHub. At the moment the repository is private. |
| 90 | + </p> |
| 91 | + </div> |
| 92 | + |
| 93 | +</section> |
| 94 | + |
| 95 | +<!-- |
| 96 | +<section class="panel panel-default"> |
| 97 | +
|
| 98 | + <div class="panel-heading"> |
| 99 | + <h2 class="panel-title"> |
| 100 | + Installation |
| 101 | + </h2> |
| 102 | + </div> |
| 103 | +
|
| 104 | + <div class="panel-body"> |
| 105 | + <p> |
| 106 | + The <em>{{ page.title }}</em> is supplied in a zip file. Before installing you need to extract all the files from the zip file. The following files will be extracted: |
| 107 | + </p> |
| 108 | + <ul class="list-group"> |
| 109 | + <li class="list-group-item"> |
| 110 | + <strong><code>UVerInfoData.pas</code></strong> – Contains all the primary classes you need to interact with to manipulate binary version information. |
| 111 | + </li> |
| 112 | + <li class="list-group-item"> |
| 113 | + <strong><code>UVerInfoRec.pas</code></strong> – Contains support classes required by <code>UVerInfoData.pas</code>. These classes do not need to be accessed directly. |
| 114 | + </li> |
| 115 | + <li class="list-group-item"> |
| 116 | + <strong><code>UVerInfoBinIO.pas</code></strong> – Contains support classes required by </code>>UVerInfoRec.pas</code>. These classes do not need to be accessed directly. |
| 117 | + </li> |
| 118 | + <li class="list-group-item"> |
| 119 | + <code>README.md</code> – Read-me file. |
| 120 | + </li> |
| 121 | + <li class="list-group-item"> |
| 122 | + <code>CHANGELOG</code> – The project's change log. |
| 123 | + </li> |
| 124 | + <li class="list-group-item"> |
| 125 | + <code>MPL-2.txt</code> – The Mozilla Public License v2.0. |
| 126 | + </li> |
| 127 | + <li class="list-group-item"> |
| 128 | + <code>Documentation.URL</code> – Short-cut to the component's online documentation. |
| 129 | + </li> |
| 130 | + </ul> |
| 131 | + <p> |
| 132 | + In addition to the above files you will find the the source code of two demo projects along with read-me files in the <code>Demos</code> directory. |
| 133 | + </p> |
| 134 | + <p> |
| 135 | + There are four possible ways to use the units: |
| 136 | + </p> |
| 137 | + <ol> |
| 138 | + <li> |
| 139 | + The simplest way is to add <code>UVerInfoData.pas</code>, <code>UVerInfoRec.pas</code> and <code>UVerInfoBinIO.pas</code> to your projects. |
| 140 | + </li> |
| 141 | + <li> |
| 142 | + To make the units easier to re-use you can either copy them to a folder on your Delphi search path, or add the folder where you extracted the units to the search path. You then simply use the units as required without needing to add it to your project. |
| 143 | + </li> |
| 144 | + <li> |
| 145 | + For maximum portability you can add the units to a Delphi package. |
| 146 | + </li> |
| 147 | + <li> |
| 148 | + If you use Git you can add the <a href="https://github.com/ddablib/vibin"><code>ddablib/vibin</code></a> GitHub repository as a Git submodule and add it to your project. Obviously, it's safer if you fork the repo and use your own copy, just in case <code>ddablib/vibin</code> ever goes away. |
| 149 | + </li> |
| 150 | + </ol> |
| 151 | + </div> |
| 152 | +
|
| 153 | +</section> |
| 154 | +--> |
| 155 | + |
| 156 | +<!-- |
| 157 | +<section class="panel panel-default"> |
| 158 | +
|
| 159 | + <div class="panel-heading"> |
| 160 | + <h2 class="panel-title"> |
| 161 | + Documentation |
| 162 | + </h2> |
| 163 | + </div> |
| 164 | +
|
| 165 | + <div class="panel-body"> |
| 166 | + <p> |
| 167 | + The <em>{{ page.title }}</em> is comprehensively documented online <a href="{{ page.docs-url }}" aria-title="View the online documentation">here</a> |
| 168 | + </p> |
| 169 | + <p> |
| 170 | + The project's change log can be viewed <a href="https://github.com/ddablib/vibin/blob/master/CHANGELOG.md" aria-title="View the change log in Markdown format">here</a>. |
| 171 | + </p> |
| 172 | + <p> |
| 173 | + A read-me file (<code>README.md</code>) is included in the project download or it can be viewed <a href="https://github.com/ddablib/vibin/blob/master/README.md" aria-title="View the read-me file in Markdown format">here</a>. |
| 174 | + </p> |
| 175 | + </div> |
| 176 | +
|
| 177 | +</section> |
| 178 | +--> |
| 179 | + |
| 180 | +<!-- |
| 181 | +<section class="panel panel-default"> |
| 182 | + <div class="panel-heading"> |
| 183 | + <h2 class="panel-title" id="feedback"> |
| 184 | + Feedback & Queries |
| 185 | + </h2> |
| 186 | + </div> |
| 187 | + <div class="panel-body"> |
| 188 | + <p> |
| 189 | + If you find any bugs or want to suggest a new feature please report them using the <em>{{page.title}}</em> <a href="https://github.com/ddablib/vibin/issues">issue tracker</a>. |
| 190 | + </p> |
| 191 | + <p> |
| 192 | + If you have created a bug fix or have implemented a new feature please open a pull request for it. |
| 193 | + </p> |
| 194 | + <p> |
| 195 | + Should you have any queries about using the component please read the <a href="{{ page.docs-url }}">documentation</a>. If you can't find an answer in the documentation then post a message in the <a href="https://github.com/orgs/ddablib/discussions">discussion group</a> |
| 196 | + </p> |
| 197 | + </div> |
| 198 | +</section> |
| 199 | +--> |
| 200 | + |
| 201 | +<section class="panel panel-default"> |
| 202 | + <div class="panel-heading"> |
| 203 | + <h2 class="panel-title"> |
| 204 | + License |
| 205 | + </h2> |
| 206 | + </div> |
| 207 | + <div class="panel-body"> |
| 208 | + <p> |
| 209 | + <span class="fa fa-copyright fa-pull-left fa-3x"></span> |
| 210 | + The <em>{{ page.title }}</em> is open source. It is copyright © 1998-2014 by <a href="https://en.gravatar.com/delphidabbler" aria-label="Peter Johnson's Gravatar account">Peter Johnson</a>. The source code is made available under the terms of the <a href="https://www.mozilla.org/MPL/2.0/" aria-label="Mozilla Public License v2.0 on mozilla.org">Mozilla Public License v2.0</a>. All relevant trademarks are acknowledged. |
| 211 | + </p> |
| 212 | + </div> |
| 213 | +</section> |
0 commit comments