Barvna shema: Riviera
Trenutno dejavna stran: start » en » Documentation » Microsoft Access development tools » WKL Forms Object Library » WKL Forms Object Library reference » What the per-user registration writes

What the per-user registration writes

The registry entries that regsvr32 /n /i:user writes for Wkl.Forms.ObjectLibrary.dll, what regsvr32 /u /n /i:user removes, and which similar entries belong to Office instead. Use it to check that a PC is clean after unregistering, or complete after registering. The steps themselves are in How to: Install the released package.

Registry views

A 32-bit and a 64-bit registration are separate for the class ids and shared for the rest:

Part32-bit (x86 DLL)64-bit (x64 DLL)
ClassesHKCU\Software\Classes\WOW6432Node\CLSID\{class id}HKCU\Software\Classes\CLSID\{class id}
ProgIDsHKCU\Software\Classes\WklForms.<Name> (one key for both)same key
Type libraryHKCU\Software\Classes\TypeLib\{A37D549E-FCD0-48EC-8B14-C7323B747E4F}\<version>\0\win32the same key, subkey 0\win64

<version> is the release x.y in hexadecimal: 1.56 is 1.38. A program of either bitness that reads the 32-bit registry view (RegistryView.Registry32) sees the WOW6432Node keys as CLSID.

What registering writes

KeyValues and subkeys
CLSID\{class id}, one per classdefault value: description; InprocServer32 (default value: full path of the DLL, ThreadingModel = Apartment); ProgID; TypeLib (the library id); Version (x.y of the release)
the same, for each controladditionally Control, MiscStatus (and MiscStatus\1), Implemented Categories with the categories Control, safe for scripting {7DD95801-9882-11CF-9FA9-00AA006C42C4} and safe for initializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}, and ToolboxBitmap32 where the control has a toolbox picture
WklForms.<Name>, one per classdefault value: description; CLSID = the class id
TypeLib\{A37D549E-...}\<version>name „WKL Forms x.y Object Library“; 0\win32 or 0\win64 = path of the DLL; FLAGS; HELPDIR = folder of the DLL
Interface\{interface id}, one per interface of the type librarywritten by Windows (RegisterTypeLibForUser) with the type library

Release 1.60 registers 49 classes, 24 of them controls, in each bitness. Registering also removes every other version of the type library for the same bitness, so only one version stays registered per bitness. A database or ACCDE built against an older release still opens: Access binds the reference by the library id and the major version (1), so it takes the newer registered version. The opposite - a database built against a newer release on a PC with an older one - is not supported: it can break (MISSING reference, error 459) and is not guaranteed where it seems to work (see „Order of an update“ in How to: Deploy an application with WKL controls to user PCs).

What unregistering removes

regsvr32 /u /n /i:user with the DLL of one bitness removes:

  • the CLSID keys of its classes in the view of its bitness;
  • the ProgID keys, except those whose class is still registered in the other view (unregistering x86 leaves the ProgIDs of a remaining x64 registration);
  • the type library version of the DLL for its bitness, with the Interface keys Windows wrote for it (UnRegisterTypeLibForUser).

Unregister both bitnesses to remove everything. Nothing is written to HKEY_LOCAL_MACHINE in either direction.

Entries that do not belong to the registration

These remain after unregistering and are not a sign of an incomplete removal:

  • Type libraries named „WKL Forms x.y Object Library“ under other library ids, whose 0\win32 points to %TEMP%\VBE\WklForms.exd or %APPDATA%\Microsoft\Forms\WklForms.exd. Office writes them as a cache when VBA or a UserForm loads the controls; the registration neither writes nor removes them. Office creates them again when needed.
  • The Access add-in (HKCU\Software\Microsoft\Office\Access\Menu Add-Ins\WKL ...) is written by the add-in's own installation (tools\install-addin.ps1), not by the registration.
  • WKL Office JSON (WklJSON.JDoc, its own type library „WKL Office JSON 1.0“) is a library of its own with its own registration; see its documentation.
en/wiki/msaccess/comctl/reference/per-user-registration.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille