From Team Developer SqlWindows Wiki
Jump to: navigation, search

Pointer2.png WinApi32 declaration archive Pointer.png

There are quite some libraries with Windows API declarations published in the past on the old and new forum and many samples are created which uses Windows API.

One started public project in the past was to collect all those declarations (dll function definitions) and constants and place them in a downloadable package:

This archive contains now many WinAPI functions and constants.

With the new TD UNICODE versions, the archive was updated to include some UNICODE specific functions (W-functions).
But unfortunately, this archive is not maintained many years in a central place.

I would like to start again with collecting all those handy WinAPI functions and constants and try to enhance the current set of declarations.
Many of us have developed applications and used API functionalities which are not present in the public archive and many UNICODE versions are only locally in use.
And to avoid that we all invent the wheel multiple times, it would be better if there is one central place to get a full set of ANSI and UNICODE declarations to be used as reference or directly in your own projects.

I wanted to create one archive with both ANSI and UNICODE declarations and not to split them up in separate ones.
The original old Win32Api archive and the UNICODE version from SalExtension was the basis for this new archive.
I also integrated declarations from a few samples.

The archive contains these files:

  • WinApi32A.apl -> Main library for all ANSI WinApi declarations, it includes all the needed libs
  • WinApi32W.apl -> Main library for all UNICODE WinApi declarations, it includes all the needed libs
  • WinApi32_Functions_A.apl -> ANSI specific function declarations (A)
  • WinApi32_Functions_W.apl -> UNICODE specific function declarations (W)
  • WinApi32_Functions.apl -> Shared function declarations, not specific to ANSI or UNICODE
  • WinApi32_Constants.apl -> Shared constants declarations, containing ANSI and UNICODE specific declarations
  • WinApi32_CommonCtrlConstants.apl -> Shared common control constant declarations, containing ANSI and UNICODE specific declarations

Every file has it's own version info, so when changes are done it is added as history info in the file.
The complete package has main version. When one of the files in the archive is changed, the version of the file but also the version of the package is increased.

To be source-compatible with TD versions starting from TD 1.5.1:

  • The common and ANSI (A) specific files are saved in TD 1.5.1 text format.
  • The UNICODE (W) specific files are saved in TD 5.1 text format.

Functions which are explicitly used for ANSI (A) or UNICODE (W) are saved in their separate libraries.
Many functions are common, so not specific A or W and they are in common libraries.

So when you need only UNICODE declarations (and all the rest not specific for UNICODE) you can use WinApi32W.apl
For ANSI (and the rest not specific for ANSI) you can use WinApi32A.apl.

As a start, the first version of the package is created . The latest and older versions will be placed in the TD Sample Vault here:

Down.png WinApi32 declaration archive

I would like to ask developers here to participate in enhancing the WinApi Declaration archive.
There are probably many used WinApi functionalities out there which are not yet part of this archive.
When this is the case, please send changes/additions to me so I can combine the changes and create a new version of the package.
(probably best to only send me a file with the changed/added declarations so it is clear what to change in the archive.)
All changes will be added to the revision histories. Then the new archive is uploaded to the location mentioned above.

When current declarations are not correct, please report this.

By keeping the package up-to-date we will have a usable set of declarations ready to use in our projects. We all benefit.
It would be great if this combined effort will result in a comprehensive source for reference.

For additions/changes to WinApi32 declaration libraries, please send the file(s) to my personal email address:

Mail me