Index: src/plugin/COM_Value.h |
=================================================================== |
--- a/src/plugin/COM_Value.h |
+++ b/src/plugin/COM_Value.h |
@@ -115,6 +115,27 @@ |
*/ |
BSTR_Argument& operator=( BSTR_Argument&& ); // = delete |
}; |
+ |
+ /** |
+ * Constructor class for BSTR [in] parameters arriving from our COM entry points. |
+ * |
+ * The life cycle of a BSTR value that comes to us as an [in] parameter is entirely managed by the caller. |
+ * Thus this class simply derives from std::wstring and provides an appropriate constructor. |
+ * |
+ * This class is a narrow technique toward a larger goal of eliminating CComBSTR, |
+ * which had been used for these parameters. |
+ * All the uses, however, had been for IDispatch entry points, which are all VARIANT. |
+ * In all cases, the caller much first check the type of the VARIANT structure before constructing an instance. |
+ * Perhaps better would be a class, say, wstring_Incoming_Param that took a VARIANT as a constructor argument |
+ * and converted it to a string. |
+ * Such a class, however, is beyond the scope of the work that this class was a part of. |
+ */ |
+ class Incoming_Param |
+ : public std::wstring |
+ { |
+ public: |
+ Incoming_Param( BSTR b ); |
sergei
2014/07/28 09:24:31
Instead of commenting all bad things here, I will
Eric
2014/07/29 19:53:08
Oh, that's just awful. If there's one thing I've l
|
+ }; |
} |
} |