No real changes, just clean up sources by removing trailing spaces from all the non-generated files. This should hopefully avoid future commits mixing significant changes with insignificant whitespace ones.
		
			
				
	
	
		
			657 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			657 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        msw/ole/automtn.h
 | 
						|
// Purpose:     interface of wxAutomationObject
 | 
						|
// Author:      wxWidgets team
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    Automation object creation flags.
 | 
						|
 | 
						|
    These flags can be used with wxAutomationObject::GetInstance().
 | 
						|
 | 
						|
    @since 2.9.2
 | 
						|
*/
 | 
						|
enum wxAutomationInstanceFlags
 | 
						|
{
 | 
						|
    /**
 | 
						|
        Only use the existing instance, never create a new one.
 | 
						|
 | 
						|
        This flag can be used to forbid the creation of a new instance if none
 | 
						|
        is currently running.
 | 
						|
     */
 | 
						|
    wxAutomationInstance_UseExistingOnly = 0,
 | 
						|
 | 
						|
    /**
 | 
						|
        Create a new instance if there are no existing ones.
 | 
						|
 | 
						|
        This flag corresponds to the default behaviour of
 | 
						|
        wxAutomationObject::GetInstance() and means that if getting an existing
 | 
						|
        instance failed, we should call wxAutomationObject::CreateInstance() to
 | 
						|
        create a new one.
 | 
						|
     */
 | 
						|
    wxAutomationInstance_CreateIfNeeded = 1,
 | 
						|
 | 
						|
    /**
 | 
						|
        Do not show an error message if no existing instance is currently
 | 
						|
        running.
 | 
						|
 | 
						|
        All other errors will still be reported as usual.
 | 
						|
     */
 | 
						|
    wxAutomationInstance_SilentIfNone = 2
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
    Flags used for conversions between wxVariant and OLE @c VARIANT.
 | 
						|
 | 
						|
    These flags are used by wxAutomationObject for its wxConvertOleToVariant()
 | 
						|
    calls. They can be obtained by wxAutomationObject::GetConvertVariantFlags()
 | 
						|
    and set by wxAutomationObject::SetConvertVariantFlags().
 | 
						|
 | 
						|
    @since 3.0
 | 
						|
 | 
						|
    @header{wx/msw/ole/oleutils.h}
 | 
						|
*/
 | 
						|
enum wxOleConvertVariantFlags
 | 
						|
{
 | 
						|
    /**
 | 
						|
        Default value.
 | 
						|
    */
 | 
						|
    wxOleConvertVariant_Default = 0,
 | 
						|
 | 
						|
    /**
 | 
						|
        If this flag is used, SAFEARRAYs contained in OLE @c VARIANTs will be
 | 
						|
        returned as wxVariants with wxVariantDataSafeArray type instead of
 | 
						|
        wxVariants with the list type containing the (flattened) SAFEARRAY's
 | 
						|
        elements.
 | 
						|
    */
 | 
						|
    wxOleConvertVariant_ReturnSafeArrays = 1
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxVariantDataCurrency
 | 
						|
 | 
						|
    This class represents a thin wrapper for Microsoft Windows @c CURRENCY type.
 | 
						|
 | 
						|
    It is used for converting between wxVariant and OLE @c VARIANT
 | 
						|
    with type set to @c VT_CURRENCY. When wxVariant stores
 | 
						|
    wxVariantDataCurrency, it returns "currency" as its type.
 | 
						|
 | 
						|
    An example of setting and getting @c 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 uses @c VarBstrFromCy() Windows API
 | 
						|
        function with @c 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 @c SCODE type
 | 
						|
    (which is the same as @c HRESULT).
 | 
						|
 | 
						|
    It is used for converting between a wxVariant and OLE @c VARIANT with type set
 | 
						|
    to @c 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 @c 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 @c S_OK if no value was
 | 
						|
        passed.
 | 
						|
    */
 | 
						|
    wxVariantDataErrorCode(SCODE value = S_OK);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the stored @c 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 @c 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 wxVariantDataSafeArray
 | 
						|
 | 
						|
    This class represents a thin wrapper for Microsoft Windows @c SAFEARRAY type.
 | 
						|
 | 
						|
    It is used for converting between wxVariant and OLE @c VARIANT
 | 
						|
    with type set to @c VT_ARRAY, which has more than one dimension.
 | 
						|
    When wxVariant stores wxVariantDataSafeArray, it returns "safearray" as its type.
 | 
						|
 | 
						|
    wxVariantDataSafeArray does NOT manage the @c SAFEARRAY it points to.
 | 
						|
    If you want to pass it to a wxAutomationObject as a parameter:
 | 
						|
        -# Assign a @c SAFEARRAY pointer to it and store it in a wxVariant.
 | 
						|
        -# Call the wxAutomationObject method (CallMethod(), SetProperty() or Invoke())
 | 
						|
        -# wxAutomationObject will destroy the array after the approapriate automation call.
 | 
						|
 | 
						|
    An example of creating a 2-dimensional @c SAFEARRAY containing VARIANTs
 | 
						|
    and storing it in a wxVariant
 | 
						|
    @code
 | 
						|
    SAFEARRAYBOUND bounds[2]; // 2 dimensions
 | 
						|
    wxSafeArray<VT_VARIANT> safeArray;
 | 
						|
    unsigned rowCount = 1000;
 | 
						|
    unsigned colCount = 20;
 | 
						|
 | 
						|
    bounds[0].lLbound = 0; // elements start at 0
 | 
						|
    bounds[0].cElements = rowCount;
 | 
						|
    bounds[1].lLbound = 0; // elements start at 0
 | 
						|
    bounds[1].cElements = colCount;
 | 
						|
 | 
						|
    if ( !safeArray.Create(bounds, 2) )
 | 
						|
        return false;
 | 
						|
 | 
						|
    long indices[2];
 | 
						|
 | 
						|
    for ( unsigned row = 0; row < rowCount; row++ )
 | 
						|
    {
 | 
						|
        indices[0] = row;
 | 
						|
        for ( unsigned col = 0; col < colCount; col++ )
 | 
						|
        {
 | 
						|
            indices[1] = col;
 | 
						|
            if ( !safeArray.SetElement(indices, wxString::Format("R%u C%u", row+1, col+1)) )
 | 
						|
               return false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    range.PutProperty("Value", wxVariant(new wxVariantDataSafeArray(safeArray.Detach())));
 | 
						|
    @endcode
 | 
						|
 | 
						|
    If you you received wxVariantDataSafeArray as a result of wxAutomationObject method call:
 | 
						|
    (1) Get the data out of the array.
 | 
						|
    (2) Destroy the array.
 | 
						|
    @code
 | 
						|
    wxVariant result;
 | 
						|
    result = range.GetProperty("Value");
 | 
						|
    if ( result.GetType() == "safearray" )
 | 
						|
    {
 | 
						|
        wxSafeArray<VT_VARIANT> safeArray;
 | 
						|
        wxVariantDataSafeArray* const
 | 
						|
            sa = wxStaticCastVariantData(variant.GetData(), wxVariantDataSafeArray);
 | 
						|
 | 
						|
        if ( !safeArray.Attach(sa.GetValue() )
 | 
						|
        {
 | 
						|
            if ( !safeArray.HasArray() )
 | 
						|
                SafeArrayDestroy(sa.GetValue()); // we have to dispose the SAFEARRAY ourselves
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        // get the data from the SAFEARRAY using wxSafeArray::GetElement()
 | 
						|
        // SAFEARRAY will be disposed by safeArray's dtor
 | 
						|
    }
 | 
						|
    @endcode
 | 
						|
 | 
						|
    @onlyfor{wxmsw}
 | 
						|
    @since 2.9.5
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{data}
 | 
						|
 | 
						|
    @see wxAutomationObject, wxVariant, wxVariantData, wxVariantDataErrorCode
 | 
						|
 | 
						|
    @header{wx/msw/ole/oleutils.h}
 | 
						|
*/
 | 
						|
class wxVariantDataSafeArray : public wxVariantData
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor initializes the object to @a value.
 | 
						|
    */
 | 
						|
    explicit wxVariantDataSafeArray(SAFEARRAY* value = NULL);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the stored array.
 | 
						|
    */
 | 
						|
    SAFEARRAY* GetValue() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Set the stored array.
 | 
						|
    */
 | 
						|
    void SetValue(SAFEARRAY* value);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns @true if @a data is of wxVariantDataSafeArray type
 | 
						|
        and contains the same SAFEARRAY* value.
 | 
						|
    */
 | 
						|
    virtual bool Eq(wxVariantData& data) const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Fills the provided string with the textual representation of this
 | 
						|
        object.
 | 
						|
 | 
						|
        Only the address of @c SAFEARRAY pointer is output.
 | 
						|
    */
 | 
						|
    virtual bool Write(wxString& str) const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns a copy of itself.
 | 
						|
    */
 | 
						|
    wxVariantData* Clone() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns "safearray".
 | 
						|
    */
 | 
						|
    virtual wxString GetType() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Converts the value of this object to wxAny.
 | 
						|
    */
 | 
						|
    virtual bool GetAsAny(wxAny* any) const;
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxAutomationObject
 | 
						|
 | 
						|
    The @b wxAutomationObject class represents an OLE automation object containing
 | 
						|
    a single data member,
 | 
						|
    an @c IDispatch pointer. It contains a number of functions that make it easy to
 | 
						|
    perform
 | 
						|
    automation operations, and set and get properties. The class makes heavy use of
 | 
						|
    the wxVariant class.
 | 
						|
 | 
						|
    The usage of these classes is quite close to OLE automation usage in Visual
 | 
						|
    Basic. The API is
 | 
						|
    high-level, and the application can specify multiple properties in a single
 | 
						|
    string. The following example
 | 
						|
    gets the current Microsoft Excel instance, and if it exists, makes the active cell bold.
 | 
						|
 | 
						|
    @code
 | 
						|
    wxAutomationObject excelObject;
 | 
						|
 | 
						|
    if ( excelObject.GetInstance("Excel.Application") )
 | 
						|
        excelObject.PutProperty("ActiveCell.Font.Bold", true);
 | 
						|
    @endcode
 | 
						|
 | 
						|
    Note that this class obviously works under Windows only.
 | 
						|
 | 
						|
    @onlyfor{wxmsw}
 | 
						|
 | 
						|
    @library{wxcore}
 | 
						|
    @category{data}
 | 
						|
 | 
						|
    @see wxVariant, wxVariantDataCurrency, wxVariantDataErrorCode, wxVariantDataSafeArray
 | 
						|
*/
 | 
						|
class wxAutomationObject : public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor, taking an optional @c IDispatch pointer which will be released when
 | 
						|
        the
 | 
						|
        object is deleted.
 | 
						|
    */
 | 
						|
    wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL);
 | 
						|
 | 
						|
    /**
 | 
						|
        Destructor. If the internal @c IDispatch pointer is non-null, it will be released.
 | 
						|
    */
 | 
						|
    ~wxAutomationObject();
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Calls an automation method for this object. The first form takes a method name,
 | 
						|
        number of
 | 
						|
        arguments, and an array of variants. The second form takes a method name and
 | 
						|
        zero to six
 | 
						|
        constant references to variants. Since the variant class has constructors for
 | 
						|
        the basic
 | 
						|
        data types, and C++ provides temporary objects automatically, both of the
 | 
						|
        following lines
 | 
						|
        are syntactically valid:
 | 
						|
        @code
 | 
						|
        wxVariant res = obj.CallMethod("Sum", wxVariant(1.2), wxVariant(3.4));
 | 
						|
        wxVariant res = obj.CallMethod("Sum", 1.2, 3.4);
 | 
						|
        @endcode
 | 
						|
 | 
						|
        Note that @a method can contain dot-separated property names, to save the
 | 
						|
        application
 | 
						|
        needing to call GetProperty() several times using several temporary objects. For
 | 
						|
        example:
 | 
						|
        @code
 | 
						|
        object.CallMethod("ActiveWorkbook.ActiveSheet.Protect", "MyPassword");
 | 
						|
        @endcode
 | 
						|
    */
 | 
						|
    wxVariant CallMethod(const wxString& method, int noArgs,
 | 
						|
                         wxVariant args[]) const;
 | 
						|
    wxVariant CallMethod(const wxString& method, ... ) const;
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Creates a new object based on the @a progID, returning @true if the object was
 | 
						|
        successfully created,
 | 
						|
        or @false if not.
 | 
						|
 | 
						|
        @see GetInstance()
 | 
						|
    */
 | 
						|
    bool CreateInstance(const wxString& progId) const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Checks if the object is in a valid state.
 | 
						|
 | 
						|
        Returns @true if the object was successfully initialized or @false if
 | 
						|
        it has no valid @c IDispatch pointer.
 | 
						|
 | 
						|
        @see GetDispatchPtr()
 | 
						|
     */
 | 
						|
    bool IsOk() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Gets the @c IDispatch pointer.
 | 
						|
 | 
						|
        Notice that the return value of this function is an untyped pointer but
 | 
						|
        it can be safely cast to @c IDispatch.
 | 
						|
    */
 | 
						|
    WXIDISPATCH* GetDispatchPtr() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Retrieves the current object associated with the specified ProgID, and
 | 
						|
        attaches the @c IDispatch pointer to this object.
 | 
						|
 | 
						|
        If attaching to an existing object failed and @a flags includes
 | 
						|
        ::wxAutomationInstance_CreateIfNeeded flag, a new object will be created.
 | 
						|
        Otherwise this function will normally log an error message which may be
 | 
						|
        undesirable if the object may or may not exist. The
 | 
						|
        ::wxAutomationInstance_SilentIfNone flag can be used to prevent the error
 | 
						|
        from being logged in this case.
 | 
						|
 | 
						|
        Returns @true if a pointer was successfully retrieved, @false
 | 
						|
        otherwise.
 | 
						|
 | 
						|
        Note that this cannot cope with two instances of a given OLE object being
 | 
						|
        active simultaneously,
 | 
						|
        such as two copies of Microsoft Excel running. Which object is referenced cannot
 | 
						|
        currently be specified.
 | 
						|
 | 
						|
        @param progId COM ProgID, e.g. "Excel.Application"
 | 
						|
        @param flags The creation flags (this parameters was added in wxWidgets
 | 
						|
            2.9.2)
 | 
						|
 | 
						|
        @see CreateInstance()
 | 
						|
    */
 | 
						|
    bool GetInstance(const wxString& progId,
 | 
						|
                     int flags = wxAutomationInstance_CreateIfNeeded) const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Retrieves a property from this object, assumed to be a dispatch pointer, and
 | 
						|
        initialises @a obj with it.
 | 
						|
        To avoid having to deal with @c IDispatch pointers directly, use this function in
 | 
						|
        preference
 | 
						|
        to GetProperty() when retrieving objects
 | 
						|
        from other objects.
 | 
						|
        Note that an @c IDispatch pointer is stored as a @c void* pointer in wxVariant
 | 
						|
        objects.
 | 
						|
 | 
						|
        @see GetProperty()
 | 
						|
    */
 | 
						|
    bool GetObject(wxAutomationObject& obj, const wxString& property,
 | 
						|
                   int noArgs = 0,
 | 
						|
                   wxVariant args[] = NULL) const;
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Gets a property value from this object. The first form takes a property name,
 | 
						|
        number of
 | 
						|
        arguments, and an array of variants. The second form takes a property name and
 | 
						|
        zero to six
 | 
						|
        constant references to variants. Since the variant class has constructors for
 | 
						|
        the basic
 | 
						|
        data types, and C++ provides temporary objects automatically, both of the
 | 
						|
        following lines
 | 
						|
        are syntactically valid:
 | 
						|
        @code
 | 
						|
        wxVariant res = obj.GetProperty("Range", wxVariant("A1"));
 | 
						|
        wxVariant res = obj.GetProperty("Range", "A1");
 | 
						|
        @endcode
 | 
						|
 | 
						|
        Note that @a property can contain dot-separated property names, to save the
 | 
						|
        application
 | 
						|
        needing to call GetProperty several times using several temporary objects.
 | 
						|
 | 
						|
        @see GetObject(), PutProperty()
 | 
						|
    */
 | 
						|
    wxVariant GetProperty(const wxString& property, int noArgs,
 | 
						|
                          wxVariant args[]) const;
 | 
						|
    wxVariant GetProperty(const wxString& property, ... ) const;
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        This function is a low-level implementation that allows access to the @c IDispatch
 | 
						|
        Invoke function.
 | 
						|
        It is not meant to be called directly by the application, but is used by other
 | 
						|
        convenience functions.
 | 
						|
 | 
						|
        @param member
 | 
						|
            The member function or property name.
 | 
						|
        @param action
 | 
						|
            Bitlist: may contain @c DISPATCH_PROPERTYPUT, @c DISPATCH_PROPERTYPUTREF,
 | 
						|
            @c DISPATCH_PROPERTYGET, @c DISPATCH_METHOD.
 | 
						|
        @param retValue
 | 
						|
            Return value (ignored if there is no return value)
 | 
						|
        @param noArgs
 | 
						|
            Number of arguments in args or ptrArgs.
 | 
						|
        @param args
 | 
						|
            If non-null, contains an array of variants.
 | 
						|
        @param ptrArgs
 | 
						|
            If non-null, contains an array of constant pointers to variants.
 | 
						|
 | 
						|
        @return @true if the operation was successful, @false otherwise.
 | 
						|
 | 
						|
        @remarks Two types of argument array are provided, so that when possible
 | 
						|
                 pointers are used for efficiency.
 | 
						|
    */
 | 
						|
    bool Invoke(const wxString& member, int action,
 | 
						|
                wxVariant& retValue, int noArgs,
 | 
						|
                wxVariant args[],
 | 
						|
                const wxVariant* ptrArgs[] = 0) const;
 | 
						|
 | 
						|
    //@{
 | 
						|
    /**
 | 
						|
        Puts a property value into this object. The first form takes a property name,
 | 
						|
        number of
 | 
						|
        arguments, and an array of variants. The second form takes a property name and
 | 
						|
        zero to six
 | 
						|
        constant references to variants. Since the variant class has constructors for
 | 
						|
        the basic
 | 
						|
        data types, and C++ provides temporary objects automatically, both of the
 | 
						|
        following lines
 | 
						|
        are syntactically valid:
 | 
						|
        @code
 | 
						|
        obj.PutProperty("Value", wxVariant(23));
 | 
						|
        obj.PutProperty("Value", 23);
 | 
						|
        @endcode
 | 
						|
 | 
						|
        Note that @a property can contain dot-separated property names, to save the
 | 
						|
        application
 | 
						|
        needing to call GetProperty() several times using several temporary objects.
 | 
						|
    */
 | 
						|
    bool PutProperty(const wxString& property, int noArgs,
 | 
						|
                     wxVariant args[]);
 | 
						|
    bool PutProperty(const wxString& property, ... );
 | 
						|
    //@}
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the @c IDispatch pointer, does not check if there is already one.
 | 
						|
        You may need to cast from @c IDispatch* to @c WXIDISPATCH* when calling this function.
 | 
						|
    */
 | 
						|
    void SetDispatchPtr(WXIDISPATCH* dispatchPtr);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the locale identifier used in automation calls.
 | 
						|
 | 
						|
        The default is @c LOCALE_SYSTEM_DEFAULT but the objects obtained by
 | 
						|
        GetObject() inherit the locale identifier from the one that created
 | 
						|
        them.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
    */
 | 
						|
    WXLCID GetLCID() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the locale identifier to be used in automation calls performed by
 | 
						|
        this object.
 | 
						|
 | 
						|
        The default value is @c LOCALE_SYSTEM_DEFAULT.
 | 
						|
 | 
						|
        Notice that any automation objects created by this one inherit the same
 | 
						|
        @c LCID.
 | 
						|
 | 
						|
        @since 2.9.5
 | 
						|
    */
 | 
						|
    void SetLCID(WXLCID lcid);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the flags used for conversions between wxVariant and OLE
 | 
						|
        @c VARIANT, see #wxOleConvertVariantFlags.
 | 
						|
 | 
						|
        The default value is ::wxOleConvertVariant_Default for compatibility but
 | 
						|
        it can be changed using SetConvertVariantFlags().
 | 
						|
 | 
						|
        Notice that objects obtained by GetObject() inherit the flags from the
 | 
						|
        one that created them.
 | 
						|
 | 
						|
        @since 3.0
 | 
						|
    */
 | 
						|
    long GetConvertVariantFlags() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Sets the flags used for conversions between wxVariant and OLE @c VARIANT,
 | 
						|
        see #wxOleConvertVariantFlags.
 | 
						|
 | 
						|
        The default value is ::wxOleConvertVariant_Default.
 | 
						|
 | 
						|
        @since 3.0
 | 
						|
    */
 | 
						|
    void SetConvertVariantFlags(long flags);
 | 
						|
};
 | 
						|
 |