Monday, September 28, 2020

Desktop app update framework

Desktop app update framework

  1. Squirrel / Squirrel.Windows
  2. Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e., Squirrel can manage native C++ applications).

Saturday, September 26, 2020

software protection with Crypto++

software protection. focus on Crypto++. search this keyword "crypto++" and will find many good posts. I took note of them here for my own development.

    build driver and hide files

  1. Implementation of the Licensing System for a Software Product
  2. Driver to Hide Processes and Files
  3. In this article, we describe the driver we created to hide processes and files in a system.

  4. How to Sign Device Drivers with WDK 7.1 maratoni
  5. This is a brief tutorial on how to sign a Windows device driver with WDK 7.1

  6. Driver Development Part 1: Introduction to Drivers
  7. Download the Windows Driver Kit (WDK)
  8. The WDK is used to develop, test, and deploy Windows drivers.

    Runtime requirements You can run the Windows 10, version 2004 WDK on Windows 7 and later, and use it to develop drivers for these operating systems:

    Step 1: Install Visual Studio 2019 The WDK requires Visual Studio. For more information about system requirements for Visual Studio, see Visual Studio 2019 System Requirements.

    To find the latest version of MSVC installed on your system, in Visual Studio Installer go to workload page, on the right pane under installation details, expand Desktop development with C++ and locate the MSVC v142 - VS 2019 C++ x64/x86 build tools (V14.xx) - note where xx should be the highest version available.

    With this information (v14.xx), go to Individual components and search for v14.xx. This will return the tool sets for all architectures, including Spectre mitigated libs. Select the driver architecture you are developing for.

  9. Installing Microsoft Windows Driver Development Kit (DDK) for Microsoft Windows Server 2003 Service Pack 1 (SP1) on Windows XP Pro SP2 - Part 1 :: tenouk.com
  10. Installing Microsoft Windows Driver Development Kit (DDK) for Microsoft Windows Server 2003 Service Pack 1 (SP1) on Windows XP Pro SP2- Part 2
  11. Set up: Windows Driver Kit (WDK) for Visual Studio 2019
  12. Premiere: Open a project in an earlier version | Downgrade Guide
  13. other topics

  14. Compiling and Integrating Crypto++ into the Microsoft Visual C++ Environment
  15. OpenSSL Tour for Win32 Developer
  16. Building and configuring OpenSSL in Visual Studio (MSBuild).
  17. Product Keys Based on the Advanced Encryption Standard (AES)
  18. Product Activation Based on RSA Signatures
  19. Implementation of the Licensing System for a Software Product
  20. A simple software key useful to protect software components
  21. Generating Unique Key (Finger Print) for a Computer for Licensing Purposes
  22. Applied Crypto++: Block Ciphers
  23. Applied OpenSSL: CTR Mode in File Encryption
  24. Sign Code
  25. Simple File Encryption using OpenSSL
  26. Crypto++® Library 8.2
  27. An AES Encrypting Registry Class
  28. WinAES: A C++ AES Class
  29. Cryptor - Encrypt Files With Rijndael 256 bit
  30. Another registry class
  31. Testing VS2005 Debug Version on a Non Development Machine
  32. MFC CFile Implementation for Crypto++
  33. this technique can be used to store password in my app.

  34. SpaceCrypto: A Simple Crypto++ Wrapper
  35. NtRegEdit - Native Registry Editor
  36. Cryptest (MFC Style Crypto++ v4.2 Library GUI).
  37. Cryptest (MFC Style Crypto++ v4.2 Library GUI).
  38. Building 64-bit Version of the crypto++ DLL
  39. Hex Encoder and Decoder using Crypto++
  40. Applied Crypto++: Using the RSA Digital Signature System (Part I)
  41. Encryption and compression, native and managed
  42. An AES Encrypting Registry Class
  43. Installation IDs Based on Truncated Hashing

drawing all kinds of shapes in VC/MFC and C#

drawing all kinds of shapes in VC/MFC

  1. The Spiral TrackBar Control
  2. very good formular is presented here.

  3. Using the new MFC7/ATL7 shared classes.
  4. his example demonstrates using the new shared ATL/MFC classes such as CPoint, CRect, CSize and CString

  5. Classes Shared by MFC and ATL
  6. The following table lists the classes shared between MFC and ATL.

  7. CRect Class
  8. CSize Class
  9. CPoint Class
  10. CStringT Class
  11. CImage Class
  12. special techniques

  13. Anti Aliased Image Rotation
  14. Anti Aliased Image Transformation (Aaform)
  15. Fast stepwise rotation
  16. We study the problem of computing R cos(a + k b) and R sin(a + k b) for increasing k

  17. Perspective Projection of a Rectangle (Homography)
  18. Short study of the perspective projection of a rectangle in space; homography opposed to bilinear transform.

    my note: it can be used to draw rotated Elliptic.

  19. Affine transformation
  20. Affine Transformations in Computer Graphics
  21. Some simple examples of how to apply affine transformations in computer graphics.

    need to reuse his method on MFC demos.

  22. Fractals in theory and practice
  23. Generate and understand NURBS curves
  24. Spline Interpolation - history, theory and implementation
  25. Transmission Line Matrix for Acoustic Simulations
  26. Sunflower Fractal - Practice
  27. A Math Class That Gives You More Than Just the Answer
  28. Rotating Picture Tray
  29. Elliptical Rotating Picture Tray and Editor
  30. we can see the formula to rotate an Elliptic...

  31. Gearographic Curves - Part 1
  32. Gearographic Curves - Part 2
  33. Dancing with Spirals
  34. it includes all kinds of formula of spirals. need to implement them in MFC and take a look their math attributes...

  35. The Vogel Spiral Phenomenon
  36. Spiral
  37. logarithmic spiral
  38. spiral
  39. Polar coordinate system
  40. Dynatrade-Bell™, Quantitative Trading Engine
  41. The Orthodromic Distance Between Two Geo-points
  42. Graphing Calculator in C# with LES
  43. this plotter can draw spiral with formulas!


  44. Using SetWorldTransform() to Rotate Basic Shapes by Any Angle
  45. Symbolic Link Rotation Utility for the Support of the Rotation of the Windows® Logon/Shutdown Screen
  46. EMF Record Rotation for EMR_POLYGON16
  47. CBTAngleWnd: A cool rotation angle custom control with full source code!
  48. VC++ Linker: /SUBSYSTEM (Specify Subsystem)
  49. Calculate exp() and log() Without Multiplications
  50. cordic methods
  51. Natural Logarithms and Exponent
  52. A simple program to solve quadratic equations with
  53. Atomiq - Code Similarity Finder
  54. Techniques for Avoiding Code Duplication
  55. Best-fitting line, circle and ellipse
  56. Using C to Blend Mathematics and Art (When Math goes Beautiful)
  57. qTimeLineEditor - A flexible graphical time line editor for your animations
  58. a good ruler logic

Friday, September 25, 2020

C++ namespace example

C++ namespace example

    basic concepts

  1. Namespaces on cppreference.com
  2. Structs and Classes
  3. Struct declaration
  4. C++ keywords: struct
  5. Struct and union initialization
  6. Struct declaration
  7. Const
  8. C++ keywords: const
  9. const type qualifier
  10. const type qualifier
  11. Reference declaration
  12. Reference initialization
  13. References
  14. Language linkage
  15. Declarations
  16. Variable Scope
  17. C++ reference
  18. C++ Standard Library headers
  19. constexpr specifier (since C++11)
  20. constexpr (C++)
  21. Understanding constexpr specifier in C++
  22. Initializer Lists In C++
  23. Storage class specifiers
  24. static members
  25. static_assert declaration
  26. std::static_pointer_cast, std::dynamic_pointer_cast,
  27. static_cast conversion

  28. more examples to deepen understanding

  29. Namespace in C++ | Set 1 (Introduction)
  30. tested

  31. namespace in C++ | Set 2 (Extending namespace and Unnamed namespace)
  32. tested

  33. Namespace in C++ | Set 3 (Accessing, creating header, nesting and aliasing)
  34. tested

  35. MODULE 23 - C++ NAMESPACES TUTORIAL 1
  36. tested

  37. MODULE 23a - C++ NAMESPACES 2
  38. tested

  39. 6.2 — User-defined namespaces
  40. tested

    In applications, namespaces can be used to separate application-specific code from code that might be reusable later (e.g. math functions). For example, physical and math functions could go into one namespace (e.g. math::). Language and localization functions in another (e.g. lang::).

    When you write a library or code that you want to distribute to others, always place your code inside a namespace. The code your library is used in may not follow best practices -- in such a case, if your library’s declarations aren’t in a namespace, there’s an elevated chance for naming conflicts to occur. As an additional advantage, placing library code inside a namespace also allows the user to see the contents of your library by using their editor’s auto-complete and suggestion feature.

  41. Using namespaces properly
  42. tested

  43. using / namespace
  44. New Class (C++) Wizard with namespaces selection
  45. Creating and Using Namespace in C++
  46. Namespace In C++ Example | C++ Namespace Tutorial
  47. Namespaces In C++
  48. External Namespaces Sometimes when we have too many namespaces to use in our application, we might want to place all the namespaces in a separate file. This can be easily done. When the namespaces are in the separate file we just include that file in our program and then directly use the namespaces and its contents in our program.

  49. How to use C++ Namespaces with an Example Code
  50. Namespaces in C++
  51. tested

  52. Namespaces
  53. Learn C++ Namespace with Syntax and Example in just 4 Mins!
  54. Everything You Need to Know about Namespace in C++
  55. Coupling and Cohesion
  56. code of damned:: very good website to review regularly
  57. C++: Pointers - Part 1
  58. Fundamentals of C++: Introduction to Templates

research on CMultiLock vs CSingleLock class

research on CMultiLock vs CSingleLock class

  1. CMultiLock Class
  2. CSingleLock Class
  3. Microsoft KB Archive/151033
  4. If the CMultiLock class is used to synchronize on more than eight synchronization objects, a memory leak occurs when using CEvent, CSemaphore, or CMutex as the synchronization objects. The size of the leak equals the number of synchronization objects used multiplied by the memory needed for a BOOL variable.

    Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was corrected in Visual C++ 32- bit Edition version 4.2.

  5. Formatted MessageBox/AfxMessageBox
  6. Determine Information about System, User, Processes, Hardware...
  7. Explicating the new C++ standard (C++0x), and its implementation in VC10
  8. The Practical Guide to Multithreading - Part 1
  9. The Practical Guide to Multithreading - Part 2
  10. Simple Multithreaded Application in pure C, Win32 and MFC
  11. Thread Synchronization for Beginners
  12. Synchronization in Multithreaded Applications with MFC
  13. MFC Thread Synchronization using SYNCHRONIZED macro
  14. Automatic thread synchronization - Exception based class library
  15. How to create a Simple Lock Framework for C++ Synchronization
  16. This article explains how to create your own simple Lock Framework for C++ synchronization.

  17. EpiLibrary ::Visual C++ Utility Library
  18. https://github.com/juhgiyo/EpLibrary
  19. lock framework is good to use

Thursday, September 24, 2020

A tool to view Lib file

A tool to view Lib file

  1. A Tool to View a LIB
  2. Single Thread vs Dual Thread
  3. How to See the Contents of Windows library (*.lib)

research on QuantLib

research on QuantLib

  1. Option Pricing using the Binomial Tree Model in C#
  2. Volume Weighted Average Price (VWAP) Algorithm
  3. Access advantage
  4. QuantLib installation in VC++
  5. quantlib / releases
  6. Download QuantLib
  7. Official QuantLib Documentation
  8. Slide section has these slides: Dimitri Reiswich contributed the slides he used during a course he taught, along with the corresponding code:

    1. Boost introduction [PDF] 2. QuantLib introduction, part I [PDF] 3. QuantLib introduction, part II [PDF] 4. code samples [ZIP]

  9. QuantLib:: A free/open-source library for quantitative finance
  10. BriefMaker – An App for Processing Real-Time Market Data
  11. C++ programs for Finance
  12. I have made some programs for common uses in finance. They may be of interest to others, so I have made them public under the GNU Public Licence .

  13. Typesafe wrapping of a C++ Quant library
  14. Use advanced techniques to provide a high performance, concurrent, typesafe API around a non-threadsafe typeless one

  15. My statistical consulting services
  16. Download page

Saturday, September 19, 2020

Error C2440 'initializing': cannot convert from 'const char [1]' to 'LPTSTR'

static LPTSTR pstrExtensionList[] = { _T(""), _T(".com"), _T(".exe"), _T(".bat"), _T(".cmd"), NULL, };

When I compiled this piece of code, I got this error:

Error C2440 'initializing': cannot convert from 'const char [1]' to 'LPTSTR'

  1. error C2440: '=': cannot convert from 'const char *' to 'LPCWSTR' [duplicate]
  2. it has three links, they are good to review..

  3. how to convert char array to wchar_t array?
  4. FAQ: Cannot convert from 'const char [..]' to 'LPCTSTR'
  5. cannot convert parameter 1 from 'const char *' to 'LPCWSTR'

Error C2440 '=': cannot convert from 'const char [24]' to 'PVOID'

when I compiled a legacy project SPAWNER from revo MFC book, I got this error

C2440 '=': cannot convert from 'const char [24]' to 'PVOID' SPAWNERX c:\demo_revo\spawnerx\spawnerx\spawndlg.cpp

I cast this type directly to (PVOID)

  1. Compiler Error C2440
  2. 'Conversion' : cannot convert from 'type1' to 'type2' The compiler cannot cast from type1 to type2. C2440 can be caused if you attempt to initialize a non-const char* (or wchar_t*) by using a string literal in C++ code, when the compiler conformance option /Zc:strictStrings is set. In C, the type of a string literal is array of char, but in C++, it is array of const char.

  3. /Zc:strictStrings (Disable string literal type conversion)

Error: C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

when I compiled old MTPRINTX demo from Revo MFC book, I got the following error messages:

Error C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. MTPRINTX c:\demo_revo\mtprintx\mtprintx\hexvivw.cpp 38

I searched internet, stackoverflow.com has some good posts:

  1. How to get rid of “unsafe” warnings / errors in Visual Studio (strcpy, sprintf, strdup)
  2. a good solution:

    If you are on visual studio version >= 2005 and want to fix these warnings in a proper way... easiest method is to #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 and #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 1 in your project.

  3. Secure Template Overloads
  4. Many CRT functions have been deprecated in favor of newer, security-enhanced versions (for example, strcpy_s is the more secure replacement for strcpy). The CRT provides template overloads to help ease the transition to the more secure variants.

  5. strcpy() error in Visual studio 2012
  6. I tested: but it would be a good idea to add _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) as to inherit predefined definitions IMHO & for the most part this is a good approach.

  7. How to fix compile error “This function or variable may be unsafe” (strcpy)

Wednesday, September 16, 2020

research on ini/.ini files

need to use this kind of ini file to store app attributes for my MFC applications.

two key words: .ini file or ini file on cp.com

  1. Easy storing application properties in an INI file
  2. INI Files: in C#
  3. FastTreeView
  4. ostumpf / visuallocalizer
  5. Project Localizer
  6. INI Files
  7. Adding Most Recently Used (MRU) Files to an SDI/MDI Application
  8. C++ Error Handling with Error Code Objects
  9. UTF-8 in Windows - INI Files
  10. Cryptor - Encrypt Files With Rijndael 256 bit
  11. The Structure of import Library File (.lib)
  12. VS File Finder
  13. XResFile - Files Stored in Resources: Part 2 - Zip Files
  14. Spying a file system
  15. Validating file names
  16. ProFactor IncludeManager v1.07 (25th August 2017)
  17. Creating Self-Extracted Executable
  18. File Encryption Utility
  19. Ten Fallacies of Good C Code
  20. HexEdit - Window Binary File Editor
  21. Driver to Hide Processes and Files
  22. In this article, we describe the driver we created to hide processes and files in a system.

  23. Detect Driver
  24. This article is the continue of the previously posted article Hide Driver. Some methods to detect hidden files and processes are described in it.

  25. XReverse - Reverse a text file using memory-mapped files
  26. Timestamp - A utility to change a files "Modified" time.
  27. Using Unicode in INI files
  28. Load an EXE File and Run It from Memory
  29. Running a .bat file as administrator - Correcting current directory
  30. SADirRead - directory and file list class
  31. Make-A-File - File Creation Utility
  32. System Information
  33. A Utility to Clean Up Compiler Temp Files
  34. Find Hidden Files from Computer
  35. Using Encrypted Files Without Decrypting To Disk
  36. A Simple File System
  37. A real time log file viewer
  38. System Tray Icons - Minimize Your Application to the SysTray
  39. Minimize your application to system tray instead of the taskbar

  40. Replace in Files AddIn
  41. Search and Replace in multiple files Add-in for Visual C++ 6.0

Saturday, September 12, 2020

how to use app manifest file

how to use app manifest file

  1. Understanding Manifest Generation for C/C++ Programs
  2. Manifest Generation in Visual Studio
  3. Manifest Generation at the Command Line
  4. How to: Embed a Manifest Inside a C/C++ Application
  5. Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies
  6. How to: Configure Visual Studio C++ projects to Target 64-Bit, x64 Platforms
  7. .NET Manifest Resources
  8. Is Your App Running As Administrator?

MFC CPoint, CRect classes::tips and tricks, and porting legacy applications

CString and CRect types will be heavily used in my graphic apps.

  1. Enabling Visual Styles
  2. This topic explains how to configure your application to ensure that common controls are displayed in the user's preferred visual style.

  3. Porting a legacy MFC application to MFC Feature Pack
  4. Problems I encountered when polishing the GUI of an existing 200K LOC application.

  5. MFC Feature Pack: An Introduction
  6. Profiling of C++-Applications in Visual Studio for Free

  7. Working with Strings
  8. Windows Data Types
  9. Header files: BaseTsd.h; WinDef.h;WinNT.h

  10. What are TCHAR, WCHAR, LPSTR, LPWSTR, LPCTSTR (etc.)?
  11. Why is PCTSTR not defined but LPCTSTR defined?
  12. CString Management<--- classic papers
  13. CStrings are a useful data type. They greatly simplify a lot of operations in MFC, making it much more convenient to do string manipulation. However, there are some special techniques to using CStrings, particularly hard for people coming from a pure-C background to learn. This essay discusses some of these techniques.


  14. CRect Class
  15. Similar to a Windows RECT structure.

  16. CPoint Class
  17. Similar to the Windows POINT structure.

    Header: atltypes.h

  18. POINT structure
  19. Header windef.h (include Windows.h)

  20. RECT structure
  21. Header file: windef.h (include Windows.h)

  22. CSize Class
  23. Similar to the Windows SIZE structure, which implements a relative coordinate or position.

  24. SIZE structure
  25. The SIZE structure defines the width and height of a rectangle.

    Header file: windef.h (include Windows.h)

  26. windows.h - main header file for the Win32 API
  27. Windows.h on wikipedias
  28. windows.h is a Windows-specific header file for the C and C++ programming languages which contains declarations for all of the functions in the Windows API, all the common macros used by Windows programmers, and all the data types used by the various functions and subsystems. It defines a very large number of Windows specific functions that can be used in C. The Win32 API can be added to a C programming project by including the header file and linking to the appropriate libraries. To use functions in xxxx.dll, the program must be linked to xxxx.lib (or libxxxx.dll.a in MinGW). Some headers are not associated with a .dll but with a static library (e.g. scrnsave.h needs scrnsave.lib).

  29. windef.h
  30. windows.h - main header file for the Win32 API
  31. How to not #include

Friday, September 4, 2020

research on COM

research on COM

  1. COM in plain C
  2. Docking Toolbars in Plain C
  3. Embed an HTML control in your own window using plain C
  4. LiteZip and LiteUnzip Jeff Glatt
  5. Inside COM
  6. COM Interface Basics
  7. COM from scratch - PART ONE
  8. Step by Step COM Tutorial

MFC chart research

MFC chart research. search "MFC chart" on cp.com

  1. High-speed Charting Control
  2. An MFC Chart Control with Enhanced User Interface
  3. A Simple Pie Chart Control
  4. Automating Excel 2007 and creating charts using C++ MFC application in Visual Studio 2008
  5. Working with Excel in MFC
  6. What Is a Window?
  7. Creating a Window
  8. Module 3. Windows Graphics
  9. Module 2. Using COM in Your Windows-Based Program

research on thread

research "thread" on cp.com. reserched to page 12, but skipped from 1 to 4. need to recheck 1-4.

  1. Threads with MFC
  2. A Simple Worker Thread
  3. MFC UI Threads
  4. An MFC Chart Control with Enhanced User Interface
  5. Memory Leak Detection
  6. Threads And Timers
  7. Simple Multithreaded Application in pure C, Win32 and MFC
  8. Thread Synchronization for Beginners
  9. Creating a C++ Thread Class
  10. Using C and an embedded web-server to provide browser based source editing
  11. A class to synchronise thread completions
  12. An MFC Chart Control with Enhanced User Interface
  13. Start Class As Thread
  14. XWinVer - Simple class to get Windows OS version
  15. DtWinVer v1.34 - OS Detection Utility
  16. Threading is easy (A simple thread, thread pool, object pool, and more)
  17. Effective Threads in C++ - Part 1: The Basic Thread Class
  18. Provide Your Custom Class Name to your MFC Application
  19. Create projects easily with private MFC, ATL and CRT assemblies
  20. How to use the same thread function for multiple threads (safely) Derek Lakin
  21. CThread - a Worker Thread wrapper class
  22. An easy to use worker thread

Tuesday, September 1, 2020

knowledge to get system information

knowledge to get system information

  1. a good code signing certificate
  2. Working with Strings
  3. Getting System Information
  4. test this program and got error messages.

    Error C2440 'initializing': cannot convert from 'const wchar_t [18]' to 'TCHAR *' SystemInfo2

  5. XWinVer - Simple class to get Windows OS version
  6. Windows Version Numbers
  7. DtWinVer v1.34 - OS Detection Utility
  8. IsWindows10OrGreater function
  9. OSVERSIONINFOA structure
  10. it has most recent OS parameters needed in Hans's post.

  11. Version Helper functions
  12. The following functions can be used to determine the current operating system version or identify whether it is a Windows or Windows Server release. These functions provide simple tests that use the VerifyVersionInfo function and the recommended greater than or equal to comparisons that are proven as a robust means to determine the operating system version.

  13. GetVersionExA function
  14. Operating System Version
  15. Targeting your application for Windows
  16. The following example shows an app manifest file for an app that supports all versions of Windows from Windows Vista to Windows 10:

  17. Getting the System Version
  18. C++ How to detect Windows 10
  19. this is good post to summarize all kinds of system OS version information.

  20. C++ Check if Windows 10
  21. Get OSVersion in Windows using C++
  22. Getting the Windows OS version information C program example
  23. Determine Windows Version and Edition
  24. This article explains how to determine Windows version and edition. The method is very simple: The Windows API provides two functions, GetVersion/GetVersionEx, that fill the structure OSVERSIONINFO/OSVERSIONINFOEX with information such as major and minor version, product type, suite mask, platform, and so forth. This article, however, and the code provided here, does not list all the operating systems ever released by Microsoft, only the most usual ones.

  25. Getversionex deprecated
  26. DtWinVer v2.45 A comprehensive OS detection Class
  27. PJ Naughter's place
  28. c++ - GetVersionEx弃用-如何从较新的API获取产品类型(VER_NT_DOMAIN_CONTROLLER)

  29. regsvr42: Generate SxS Manifest Files from Native DLLs for Registration-Free COM
  30. This tool will spy on COM registration process and create side by side (SxS) manifest file(s)

    need to download source code and play around with it.

  31. System Information Utility
  32. This project is an attempt to create a utility or tool application that will display all the system information like CPU, OS, Multimedia, etc. The idea behind this application is no different than the one implemented in most of Microsoft’s System Info utility in Office products. But my application takes couple of steps more and displays more info than the available utilities. In this version (V1) of application, following information is displayed.

    the above two posts give me enough techniques to develop my tool to get system information.

  33. Troubleshooting Registration Free COM

  34. Mike Blaszczak's Sample Programs
  35. How To Add ToolTips To Controls On A Windows Form
  36. Register DLL / COM exe without admin rights
  37. Register DLL without admin rights
  38. Register ActiveX/COM Components without Administrator Privileges
  39. The Enigma Protector
  40. Operating System Version
  41. The Version API Helper functions are used to determine the version of the operating system that is currently running. For more information, see Getting the System Version.

  42. Getting the System Version
  43. Verifying the System Version
  44. Detecting a Product Suite
  45. Getting Hardware Information
  46. Using System Information
  47. Getting System Information
  48. TEXT macro
  49. TEXT() macro
  50. A tool for registering OCXs and COM DLLs
  51. Registering any COM component through coding
  52. A COM Registration Spy
  53. RegSvrEx - An Enchanced COM Server Registration Utility
  54. regsvr42: Generate SxS Manifest Files from Native DLLs for Registration-Free COM
  55. This tool will spy on COM registration process and create side by side (SxS) manifest file(s)

    need to download source code and play around with it.

  56. Using COM Without Registration
  57. A small class for using COM DLL modules without registering them

    other way to avoid registering COM DLL, is to define them on the manifest: see detailled explantion: regsvr42: Generate SxS Manifest Files from Native DLLs for Registration-Free COM[^]

  58. ReneNyffenegger / about-Windows-Registry
  59. Registry: HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\n
  60. A Closer Look at HKEY_LOCAL_MACHINE for Windows NT
  61. Troubleshooting Registration Free COM