3.7.4.6 ITypeInfo::GetRefTypeOfImplType (Opnum 8)
The GetRefTypeOfImplType method retrieves the HREFTYPE corresponding to the automation type description of an interface that is inherited, implemented, or referenced by the ITypeInfo server.
-
HRESULT GetRefTypeOfImplType( [in] UINT index, [out] HREFTYPE* pRefType );
index: MUST be a nonnegative integer, or -1.
-
If the ITypeInfo server describes a dual interface (see sections 2.2.49.4.2 and 3.7.1), the value of index MUST be 0 or -1.
-
If the ITypeInfo server describes a coclass, the value of index MUST be nonnegative and less than the value of the cImplTypes field in the TYPEATTR (section 2.2.44) structure returned by the GetTypeAttr (section 3.7.4.1) method.
-
For all other ITypeInfo servers, the value of index MUST be 0.
pRefType: MUST be set to one of the following values, if index is -1 or specifies an interface table entry.
-
If the ITypeInfo server describes a dual interface and index is -1, pRefType is specified by the TYPEKIND value associated with the ITypeInfo server (see section 2.2.44):
-
TKIND_DISPATCH: MUST be set to the HREFTYPE of the partner interface.
-
TKIND_INTERFACE: MUST be set to the HREFTYPE of the partner dispinterface.
-
In all other cases, pRefType is specified by the interface table member whose ordinal position is specified by index:
-
If the interface table member is a dual interface and the ITypeInfo server describes a DCOM interface or partner interface, pRefType MUST be the HREFTYPE of the partner interface of the interface table member.
-
Note This is the only case where an OLE Automation Protocol interface method returns a partner interface by default.
-
If the interface table member is a dual interface and the ITypeInfo server describes a coclass, pRefType MUST be the HREFTYPE of the partner dispinterface of the interface table member.
-
MUST be set to the HREFTYPE of the interface table member in all other cases.
Return Values: The method MUST return information in an HRESULT data structure, defined in [MS-ERREF] section 2.1. The severity bit in the structure identifies the following conditions:
If the severity bit is set to 0, the method completed successfully.
If the severity bit is set to 1 and the entire HRESULT DWORD does not match a value in the following table, a fatal failure occurred.
If the severity bit is set to 1 and the entire HRESULT DWORD matches a value in the following table, a failure occurred.
Return value/code
Description
0x8002802B
TYPE_E_ELEMENTNOTFOUND
The value of index did not specify the ordinal position of an element in the interface table, or the value of index was -1 and the type was not a dual interface. See [MS-ERREF].