|
ITypeInfo::Invoke
lpvInstance, memid, wFlags, pdispparams, pvargResult, pexcepinfo, puArgErr)
VOID FAR* lpvInstance
MEMBERID memid
unsigned short wFlags
DISPPARAMS FAR* pdispparams
VARIANT FAR* pvargResult
EXCEPINFO FAR* pexcepinfo
unsigned int FAR* puArgErr
Invokes a method or accesses a property of an object that implements the
interface described by the type description.
Parameters
lpvInstance
Pointer to an instance of the interface described by this type description.
memid
Identifies the interface member.
wFlags
Flags describing the context of the invoke call, as follows:
Value
| Description
| DISPATCH_METHOD
| The member was accessed as a method. If there is ambiguity, both this and the
DISPATCH_PROPERTYGET flag may be set.
| DISPATCH_PROPERTYGET
| The member is being retrieved as a property or data member.
| DISPATCH_PROPERTYPUT
| The member is being changed as a property or data member.
| DISPATCH_PROPERTYPUTREF
| The member is being changed by using a reference assignment, rather than a
value assignment. This value is only valid when the property accepts a reference
to an object.
|
pdispparams
Points to a structure containing an array of arguments, an array of DISPIDs
for named arguments, and counts of the number of elements in each array.
pvargResult
Should be NULL if the caller expects no result; otherwise, it should be a
pointer to the location at which the result is to be stored. If wFlags specifies DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, pvargResult is ignored.
pexcepinfo
Points to an exception information structure, which is filled in only if
DISP_E_EXCEPTION is returned. If pexcepinfo is NULL on input, only an HRESULT error will be returned.
puArgErr
If Invoke returns DISP_E_TYPEMISMATCH, puArgErr indicates the index (within rgvarg) of the argument with incorrect type. If more than one argument has an error, puArgErr indicates only the first argument with an error. Note that arguments in pdispparams->rgvarg appear in reverse order, so the first argument is the one having the highest
index in the array. Can't be NULL.
Return Value
The SCODE obtained from the returned HRESULT is one of the following:
SCODE
| Meaning
| S_OK
| Success.
| E_INVALIDARG
| One or more of the arguments is invalid.
| DISP_E_EXCEPTION
| The member being invoked has returned an error HRESULT. If the member
implements IErrorInfo, details are available in the error object. Otherwise, the pexcepinfo parameter contains details.
| TYPE_E_IOERROR
| The function could not read from the file.
| TYPE_E_INVDATAREAD
| The function could not read from the file.
| TYPE_E_UNSUPFORMAT
| The type library has an old format.
| TYPE_E_REGISTRYACCESS
| There was an error accessing the system registration database.
| TYPE_E_LIBNOTREGISTERED
| The type library was not found in the system registration database.
| TYPE_E_INVALIDSTATE
| The type library could not be opened.
| TYPE_E_WRONGTYPEKIND
| Type mismatch.
| TYPE_E_ELEMENTNOTFOUND
| The element was not found.
| TYPE_E_BADMODULEKIND
| The module does not support Invoke.
| Other returns
| Any of the IDispatch::Invoke errors may also be returned.
|
Comments
Use ITypeInfo::Invoke to access a member of an object or invoke a method that implements the
interface described by this type description. For objects that support the IDispatch interface, Invoke can be used to implement IDispatch::Invoke.
ITypeInfo::Invoke takes a pointer to an instance of the class. Otherwise, its parameters are
the same as IDispatch::Invoke, except that ITypeInfo::Invoke omits the REFIID and LCID parameters. When called, ITypeInfo::Invoke performs the actions described by the IDispatch::Invoke parameters on the specified instance.
For VTBL interface members, ITypeInfo::Invoke passes the LCID of the typeinfo into parameters tagged with the lcid attribute, and the returned value into the retval parameter.
If the type description inherits from another type description, this function
recurses on the base type description if necessary, to find the item with the
requested member ID.
Related LinksSoftware for Delphi and C++ Builder developers Software for Visual Studio .NET developers Software for Visual Basic 6 developers Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps Win32 Programmer's Reference (win32.hlp) Win32 Multimedia Programmer's Reference (mmedia.hlp) Microsoft Windows Pen API Programmer's Reference (penapi.hlp) Microsoft Windows Sockets 2 Reference (sock2.hlp) Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp) Unix Manual Pages
|