Having a poorer eyesight is not going to make fonts comprised of ten or so square pixels (in a direction) a bigger joy to read. Reading off a low DPI display is not only slower, but it also tires out your eyes faster.
> a secure way for me to limit when and how you can use those
That would be having them access the file in a restricted environment (literally, guards and stuff). You can't have people accessing your secrets in the comforts of their own homes and at the same time not be able to reproduce them in some form – even if an exact duplicate of the original data would be infeasible to obtain.
I decided to give it a try on a low-spec Android tablet, running latest version of Firefox. Got coloured horizontal stripes instead of a proper picture for every BPG example – and not just once; I was unable to view the images on the tablet.
Doing things not related to interacting with, or "driving", the hardware is the limit for a good device driver. For software in general, not all forms of spyware are illegal (but stealing money is, at least in my jurisdiction).
Whatever the code for changing the PID is, it (supposedly) would work as well for a malfunctioning but real product, as well as a counterfeit.
It's their driver, it operates in a specific way, perhaps responding to possible device output. Using it with non-compatible parts advertising themselves as compatible and any resulting behaviour, including unwanted, is the responsibility of the user. To play it safe, don't use any drivers with incompatible hardware.
The following is not a reason not to use Bing for others, but (just saying): almost none of these features work for me in Finland. Seriously, there was not even a calculator available a while back.
I doubt very much that the bulk of the text was written in (or near) 2005. Thus it tells very little of the state of C in 2005, but might otherwise prove to be mildly interesting read on the 80s.
I would say returning regular pointers is more C++-esque than your handmade range implementation. Pointers are, after all, a kind of iterator, which is an essential C++ concept. (std::string::iterator is a handful.)
(Furthermore, there is nothing "C" or wrong with regular pointers. Their only "flaw" is that they can't manage an object, but they're still the semantical way to refer to one.)