| 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
|
| + }; |
| } |
| } |