// This ATL object provides a clean, simple implementation of IPropertyBag,
plus
// a non-com introspection method (similar to IPropertyBag2's).
// This is just an ATL class that exposes a COM interface -- it is not
// a proper COMponent coclass. You should create it like so:
// CComObject<CStdPropBag>* pBag = 0;
// CComObject<CStdPropBag>::CreateInstance(&pBag); // refcnt == 0
// Optionally to be followed by something like this:
// NOTE 1: This implementation of IPropertyBag::Read() does not perform
// variant type-coersion, as discussed in the MS docs, because it is a
// silly thing to do, imho.
// NOTE 2: This implementation also exposes a slightly simplified, VB-
// friendly version of IPropertyBag, which I call IPropertyBagVb.