Uses type information to convert a set of names to DISPIDs. This is the recommended implementation of IDispatch::GetIDsOfNames.
HRESULT DispGetIDsOfNames(
ITypeInfo* ptinfo,
OLECHAR FAR* FAR* rgszNames,
unsigned int cNames,
DISPID FAR* rgdispid
);
- ptinfo
-
Pointer to the type information for an interface. This type information is specific to one interface and language code, so it is not necessary to pass an interface identifier (IID) or LCID to this function.
- rgszNames
-
An array of name strings that can be the same array passed to DispInvoke in the DISPPARAMS structure. If cNames is greater than 1, the first name is interpreted as a method name, and subsequent names are interpreted as parameters to that method.
- cNames
-
The number of elements in rgszNames.
- rgdispid
-
Pointer to an array of DISPIDs to be filled in by this function. The first ID corresponds to the method name. Subsequent IDs are interpreted as parameters to the method.
The return value obtained from the returned HRESULT is one of the following:
|
Return value
|
Meaning
|
| S_OK | The interface is supported. |
| E_INVALIDARG | One of the arguments is invalid. |
| DISP_E_UNKNOWNNAME | One or more of the given names were not known. The returned array of DISPIDs contains DISPID_UNKNOWN for each entry that corresponds to an unknown name. |
| Other return codes | Any of the ITypeInfo::Invoke errors can also be returned. |
This code from the Lines sample file Points.cpp implements the member function GetIDsOfNames for the CPoints class using DispGetIDsOfNames. This implementation relies on DispGetIdsOfNames to validate input arguments. To help minimize security risks, include code that performs more robust validation of the input arguments.
STDMETHODIMP
CPoints::GetIDsOfNames(
REFIID riid,
char FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgdispid)
{
return DispGetIDsOfNames(m_ptinfo, rgszNames, cNames, rgdispid);
}
For an explanation of the requirement values, see Requirements.
Windows NT/2000: Requires Windows NT 3.1 or later. Windows 95/98: Requires Windows 95 or later. Header: Declared in oleauto.h. Library: Use oleaut32.lib.
Reference
DispInvoke
ITypeInfo::Invoke
CreateStdDispatch
IDispatch::GetIDsOfNames
Concepts
Creation of Dispatch API Functions
IDispatch Interface