DispGetIDsOfNames
Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]
Verwendet Typinformationen, um eine Reihe von Namen in DISPIDs zu konvertieren. Dies ist die empfohlene Implementierung von IDispatch:: GetIDsOfNames.
HRESULT DispGetIDsOfNames(
ITypeInfo* ptinfo,
OLECHAR FAR* FAR* rgszNames,
unsigned int cNames,
DISPID FAR* rgdispid
);
Parameter
ptinfo
Zeiger auf die Typinformationen für eine Schnittstelle. Diese Typinformationen ist spezifisch für eine Schnittstelle und Sprache Code, sodass es nicht notwendig, übergeben Sie eine (Interface Identifier, IID) ist oder LCID zu dieser Funktion.rgszNames
Ein Array von Namenszeichenfolgen, die das gleiche Array werden können, die zu DispInvoke in die DISPPARAMS-Struktur übergeben. Wenn cNames größer als 1 ist, wird der erste Name als Namen einer Methode interpretiert und nachfolgende Namen werden als Parameter an die Methode interpretiert.cNames
Die Anzahl der Elemente in RgszNames.rgdispid
Zeiger auf ein Array von DISPIDs von dieser Funktion ausgefüllt werden. Die erste ID entspricht den Namen der Methode. Nachfolgende IDs werden als Parameter an die Methode interpretiert.
Rückgabewert
Der Rückgabewert vom zurückgegebenen HRESULT ist eine der folgenden:
Rückgabewert |
Bedeutung |
---|---|
S_OK |
Die Schnittstelle wird unterstützt. |
E_INVALIDARG |
Eines der Argumente ist ungültig. |
DISP_E_UNKNOWNNAME |
Eine oder mehrere der angegebenen Namen wurden nicht bekannt. Das zurückgegebene Array von DISPIDs enthält DISPID_UNKNOWN für jeden Eintrag, der einen unbekannten Namen entspricht. |
Andere Rückgabecodes |
ITypeInfo:: Invoke Fehler können auch zurückgegeben werden. |
Beispiel
Diese aus den Zeilen Beispielcode Datei Points.cpp implementiert die Member-Funktion GetIDsOfNames für die CPoints-Klasse von DispGetIDsOfNames. Diese Implementierung beruht auf DispGetIdsOfNames Eingabeargumente überprüfen. Fügen Sie Code, die eine stabilere Validierung von den Eingabeargumenten durchführt, um Sicherheitsrisiken zu minimieren.
STDMETHODIMP
CPoints::GetIDsOfNames(
REFIID riid,
char FAR* FAR* rgszNames,
UINT cNames,
LCID lcid,
DISPID FAR* rgdispid)
{
return DispGetIDsOfNames(m_ptinfo, rgszNames, cNames, rgdispid);
}