According to https://learn.microsoft.com/en-us/windows/desktop/api/vsbackup/nl-vsbackup-ivssexaminewritermetadata:
The IVssExamineWriterMetadata interface is a C++ (not COM) interface that allows a requester to examine the metadata of a specific writer instance. This metadata may come from a currently executing (live) writer, or it may have been stored as an XML document.
All the code I see treats it like a COM interface.
- https://github.com/Microsoft/Windows-classic-samples/blob/master/Samples/VShadowVolumeShadowCopy/cpp/writer.cpp#L108
- https://github.com/GoogleCloudPlatform/compute-image-windows/blob/master/third_party/vss/GoogleVssAgent/writer.cpp#L48
The definition looks like COM to me.
https://github.com/candera/hobocopy/blob/master/inc/winxp/vsbackup.h#L91
What is the distinction here? Does it violate the COM interface design rules in some documented way?