Add documentation for CURRENCY and SCODE wxVariant classes.

This should have been part of r72081.

See #14225.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-14 21:35:04 +00:00
parent 5146904d0f
commit 7f3bd46845
2 changed files with 178 additions and 1 deletions

View File

@@ -42,6 +42,179 @@ enum wxAutomationInstanceFlags
wxAutomationInstance_SilentIfNone = 2
};
/**
@class wxVariantDataCurrency
This class represents a thin wrapper for Microsoft Windows CURRENCY type.
It is used for converting between wxVariant and OLE VARIANT
with type set to VT_CURRENCY. When wxVariant stores
wxVariantDataCurrency, it returns "currency" as its type.
An example of setting and getting CURRENCY value to and from wxVariant:
@code
CURRENCY cy;
wxVariant variant;
// set wxVariant to currency type
if ( SUCCEEDED(VarCyFromR8(123.45, &cy)) ) // set cy to 123.45
{
variant.SetData(new wxVariantDataCurrency(cy));
// or instead of the line above you could write:
// wxVariantDataCurrency wxCy;
// wxCy.SetValue(cy);
// variant.SetData(wxCy.Clone());
}
// get CURRENCY value from wxVariant
if ( variant.GetType() == "currency" )
{
wxVariantDataCurrency*
wxCy = wxDynamicCastVariantData(variant.GetData(), wxVariantDataCurrency);
cy = wxCy->GetValue();
}
@endcode
@onlyfor{wxmsw}
@since 2.9.5
@library{wxcore}
@category{data}
@see wxAutomationObject, wxVariant, wxVariantData, wxVariantDataErrorCode
@header{wx/msw/ole/oleutils.h}
*/
class wxVariantDataCurrency : public wxVariantData
{
public:
/**
Default constructor initializes the object to 0.0.
*/
wxVariantDataCurrency();
/**
Constructor from CURRENCY.
*/
wxVariantDataCurrency(CURRENCY value);
/**
Returns the stored CURRENCY value.
*/
CURRENCY GetValue() const;
/**
Sets the stored value to @a value.
*/
void SetValue(CURRENCY value);
/**
Returns true if @a data is of wxVariantDataCurency type
and contains the same CURRENCY value.
*/
virtual bool Eq(wxVariantData& data) const;
/**
Fills the provided string with the textual representation of this
object.
The implementation of this method using @c VarBstrFromCy() Windows API
function with LOCALE_USER_DEFAULT.
*/
virtual bool Write(wxString& str) const;
/**
Returns a copy of itself.
*/
wxVariantData* Clone() const;
/**
Returns "currency".
*/
virtual wxString GetType() const;
/**
Converts the value of this object to wxAny.
*/
virtual bool GetAsAny(wxAny* any) const;
};
/**
@class wxVariantDataErrorCode
This class represents a thin wrapper for Microsoft Windows SCODE type
(which is the same as HRESULT).
It is used for converting between a wxVariant and OLE VARIANT with type set
to VT_ERROR. When wxVariant stores wxVariantDataErrorCode, it returns
"errorcode" as its type. This class can be used for returning error codes
of automation calls or exchanging values with other applications: e.g.
Microsoft Excel returns VARIANTs with VT_ERROR type for cell values with
errors (one of XlCVError constants, displayed as e.g. "#DIV/0!" or "#REF!"
there) etc. See wxVariantDataCurrency for an example of how to exchange
values between wxVariant and a native type not directly supported by it.
@onlyfor{wxmsw}
@since 2.9.5
@library{wxcore}
@category{data}
@see wxAutomationObject, wxVariant, wxVariantData, wxVariantDataCurrency
@header{wx/msw/ole/oleutils.h}
*/
class wxVariantDataErrorCode : public wxVariantData
{
public:
/**
Constructor initializes the object to @a value or S_OK if no value was
passed.
*/
wxVariantDataErrorCode(SCODE value = S_OK);
/**
Returns the stored SCODE value.
*/
SCODE GetValue() const;
/**
Set the stored value to @a value.
*/
void SetValue(SCODE value);
/**
Returns true if @a data is of wxVariantDataErrorCode type
and contains the same SCODE value.
*/
virtual bool Eq(wxVariantData& data) const;
/**
Fills the provided string with the textual representation of this
object.
The error code is just a number, so it's output as such.
*/
virtual bool Write(wxString& str) const;
/**
Returns a copy of itself.
*/
wxVariantData* Clone() const;
/**
Returns "errorcode".
*/
virtual wxString GetType() const { return wxS("errorcode"); }
/**
Converts the value of this object to wxAny.
*/
virtual bool GetAsAny(wxAny* any) const;
};
/**
@class wxAutomationObject
@@ -72,7 +245,7 @@ enum wxAutomationInstanceFlags
@library{wxcore}
@category{data}
@see wxVariant
@see wxVariant, wxVariantDataCurrency, wxVariantDataErrorCode
*/
class wxAutomationObject : public wxObject
{

View File

@@ -26,6 +26,10 @@
the wxVariantData object, unlike the case for basic data types where
convenience functions such as GetLong() can be used.
Under Microsoft Windows, two additional wxVariantData-derived classes --
wxVariantDataCurrency and wxVariantDataErrorCode -- are available for
interoperation with OLE VARIANT when using wxAutomationObject.
Pointers to any wxObject derived class can also easily be stored in a
wxVariant. wxVariant will then use wxWidgets' built-in RTTI system to set
the type name (returned by GetType()) and to perform type-safety checks at