Blog
We share practical ideas for real work on website development, SEO, Google Ads management, Windows development, existing asset reuse, and bug investigation.
AI search across this site
Search queries are sent to Cloudflare AI Search to generate results. Please do not enter personal information.
-
What Are COM / ActiveX / OCX? - The Differences and Relationships Explained
A practical guide to what COM is, what ActiveX is, and what OCX is - covering their differences and relationships, the connection to OLE, where they are used...
-
Choosing Between .NET's Three Timers - PeriodicTimer/Timer/DispatcherTimer
Which .NET timer should you use? PeriodicTimer for async loops, Timer for ThreadPool callbacks, DispatcherTimer for WPF UI, plus a decision table and code.
-
Calling a C# Native AOT DLL from C/C++
Publish a C# class library as a native DLL with Native AOT and call its UnmanagedCallersOnly entry points from C/C++ - where the setup fits, the implementati...
-
Why Use the .NET Generic Host and BackgroundService in Desktop Apps
How to use the Generic Host and BackgroundService to organize startup, periodic processing, shutdown, logging, configuration, and DI in Windows tools and res...
-
How to Handle ActiveX / OCX Today - A Keep / Wrap / Replace Decision Table
When you find ActiveX / OCX, how to choose between keeping, wrapping, and replacing it, covering 32-bit / 64-bit, registration, browser dependencies, and ven...
-
WPF/WinForms async and the UI Thread on One Sheet
After await in WPF or WinForms, which thread runs your code? Covers Dispatcher.Invoke, ConfigureAwait(false), and why .Result and .Wait() deadlock.
-
Building a Windows Failure-Path Test Foundation with Application Verifier
What Application Verifier is, organized together with how to build a Windows failure-path test foundation using Handles, Heaps, Low Resource Simulation, and ...
-
Investigating Long-Run Crashes of an Industrial Camera App - The Handle Leak (Part 1)
How to look at a Windows app that suddenly crashes after long-running operation, using a case study of an industrial camera control app, from the perspective...
-
Why TCP Retransmissions Stall Industrial Camera Communication, and How to Isolate Them
How to isolate the cause when industrial camera communication stalls for several seconds due to TCP retransmissions, covering packet loss, RTO, RFC1323 times...
-
A Practical Guide to FileSystemWatcher - Handling Missed and Duplicate Events
We organize how to use FileSystemWatcher and its pitfalls - missed events, duplicate notifications, completion-detection traps, rescans, atomic claims, and i...
-
An Introduction to Media Foundation - Understanding the API Through a COM Lens
We explain what Media Foundation is, together with the basic vocabulary of Windows media APIs - COM, HRESULT, IMFSourceReader, MFTs - in the order you should...
-
A Practical Decision Table for C# async/await - Task.Run and ConfigureAwait
C# async/await best practices, organized with a decision table that covers I/O waits, CPU work, Task.Run, ConfigureAwait(false), and fire-and-forget.
-
A Practical Guide to Getting as Close to Soft Real-Time as Possible on Ordinary Windows
How to stabilize periodic and low-latency processing on ordinary Windows, covering timer resolution, thread priorities, power settings, and how to monitor th...
-
Mutual Exclusion Fundamentals for File-Based Integration - Best Practices for File Locks and Atomic Claims
We organize mutual exclusion for file-based integration around file locks, atomic claims, temp -> rename, and idempotency, and lay out designs that keep shar...
-
Calling Native DLLs from C#: C++/CLI Wrapper vs P/Invoke
When using a native DLL from C#, this article separates the cases where P/Invoke is enough from the cases where a C++/CLI wrapper pays off, looking at owners...
-
An Introduction to HCP Charts and MakingHCPChartSkill
We explain what HCP charts are and walk through how MakingHCPChartSkill converts HCP-DSL into deterministic SVG, how to read the output, and how to use it.
-
COM STA/MTA Fundamentals - Threading Models and How to Avoid Hangs
COM STA/MTA fundamentals, covering the apartment model, UI threads, message loops, marshaling, and how to think about avoiding hangs.
-
A Worked Example of a COM Bridge for Calling a 64-bit DLL from a 32-bit App
When a 32-bit app cannot call a 64-bit DLL directly, a COM bridge can connect them. We walk through the approach, including the Windows constraints, the arch...
-
What Is COM? - Why the Design of Windows COM Is Still Beautiful Today
We explain what COM is from the perspective of Windows COM interface design, IUnknown, GUIDs, and binary compatibility, and why it still holds up today.
-
Announcing Our Technical Blog - A Windows / C# / COM Development Blog
Announcing the launch of the KomuraSoft LLC technical blog. We will be sharing insights on Windows development, C# / .NET, COM, design, and development tools.