Documentation Center

  • Trial Software
  • Product Updates

Contents

invoke

Invoke method on COM object or interface, or display methods

Syntax

S = h.invoke
S = h.invoke('methodname')
S = h.invoke('methodname',arg1,arg2, ...)
S = h.invoke('custominterfacename')
S = invoke(h,...)

Description

S = h.invoke returns structure array S containing a list of all methods supported by the object or interface, h, along with the prototypes for these methods. If S is empty, either there are no properties or methods in the object, or the MATLAB® software cannot read the object's type library. Refer to the COM vendor's documentation.

S = h.invoke('methodname') invokes the method specified in the string methodname, and returns an output value, if any, in S. The data type of the return value depends on the invoked method, which is determined by the control or server.

S = h.invoke('methodname',arg1,arg2, ...) invokes the method specified in the string methodname with input arguments arg1, arg2, etc.

S = h.invoke('custominterfacename') returns an Interface object S, which is a handle to a custom interface implemented by the COM component. The h argument is a handle to the COM object. The custominterfacename argument is a string returned by the interfaces function.

S = invoke(h,...) is an alternate syntax. For Automation objects, if the vendor provides documentation for specific properties or methods, use the S = invoke(h, ...) syntax to call them.

If the method returns a COM interface, then invoke returns a new MATLAB COM object that represents the interface returned. For a description of how MATLAB converts COM types, see Handling COM Data in MATLAB Software.

COM functions are available on Microsoft® Windows® systems only.

Examples

Invoke the Redraw method in the mwsamp control:

f = figure ('position', [100 200 200 200]);
h = actxcontrol ('mwsamp.mwsampctrl.1', [0 0 200 200], f);
h.Radius = 100;
h.invoke('Redraw');
 

Call the method directly:

h.Redraw;
 

Display all mwsamp methods:

h.invoke
ans = 
   AboutBox = void AboutBox(handle)
   Beep = void Beep(handle)
   FireClickEvent = void FireClickEvent(handle)
             .
             .

Getting a Custom Interface Example

Once you have created a COM server, you can query the server component to see if any custom interfaces are implemented. Use the interfaces function to return a list of all available custom interfaces:

h = actxserver('mytestenv.calculator');
customlist = h.interfaces
customlist =
   ICalc1
   ICalc2
   ICalc3

To get a handle to the custom interface you want, use the invoke function, specifying the handle returned by actxcontrol or actxserver and also the name of the custom interface:

c1 = h.invoke('ICalc1')
c1 =
   Interface.Calc_1.0_Type_Library.ICalc_Interface

You can now use this handle with most of the COM client functions to access the properties and methods of the object through the selected custom interface.

See Also

| |

Was this topic helpful?