Can you help me with a couple of questions regarding EXIF tags.
I've used various software applications to read the metadata in various JPEG's but cannot see any tags that denote if the image has been locked in the camera to prevent deletion.
When PM ingests files it sets the "tagged" tag to true or false to indicate this. Please can you tell me which tag is used from the camera's metadata to ascertain if it's true or false? (I use Canon 1D Mk3 & 4 and 1Dx)
There is no EXIF tag that indicates the locked status. It is a filesystem value. The file is "write-protected". PM sees this and determines that the image was "locked".
Using VB.Net I have written some code that will write the description and caption directly into the metadata of an image (JPEG), whilst it shows the updated caption/description in various applications like Windows Explorer, Photoshop and various metadata viewers, it does not reflect this in PM. It still shows the original description/captions even after completely closing PM and restarting the PC. Does PM use it's own XMP sidecar?
No. But PM definitely prefers to use the description found in IPTC and XMP over the EXIF "Description" tag. PM will only show the contents of the EXIF "Description" tag as a last resort (when there is no IPTC or XMP caption.) The reason for that being that it is a very old way of describing an image and there is no way to tell what encoding is used for the text, unlike IPTC which supports a few encodings and XMP which is Unicode.
If you're starting this coding from scratch, you'll save yourself a lot of time by using ExifTool (either by simply utilizing it, or by calling out to it via ShellExecute() from your app). ExifTool can do incredible things with an amazing number of image formats. PM doesn't use it, but it is very capable and it is quite quick about it.
HTH,
-Kirk