ITypeInfo::GetDllEntry

HRESULT GetDllEntry( 
  MEMBERID  memid,                
  INVOKEKIND  invKind,            
  BSTR FAR*  pBstrDllName,        
  BSTR FAR*  pBstrName,           
  unsigned short FAR*  pwOrdinal  
);
 

Retrieves a description or specification of an entry point for a function in a DLL.

Parameters

memid
ID of the member function whose DLL entry description is to be returned.
invKind
Specifies the kind of member identified by memid. This is important for properties, because one memid can identify up to three separate functions.
pBstrDllName
If not Null, the function sets pBstrDllName to a BSTR that contains the name of the DLL.
pBstrName
If not Null, the function sets lpbstrName to a BSTR that contains the name of the entry point. If the entry point is specified by an ordinal, *lpbstrName is set to Null.
pwOrdinal
If not Null, and if the function is defined by an ordinal, then lpwOrdinal is set to point to the ordinal.

Return Value

The return value obtained from the returned HRESULT is one of the following:

Return value Meaning
S_OK Success.
E_OUTOFMEMORY Out of memory.
E_INVALIDARG One or more of the arguments is invalid.
E_NOINTERFACE OLE could not find an implementation of one or more required interfaces.
TYPE_E_ELEMENTNOTFOUND The element was not found.
TYPE_E_IOERROR The function could not read from the file.
TYPE_E_INVDATAREAD Invalid data.
TYPE_E_UNSUPFORMAT The type library has an older format.
TYPE_E_INVALIDSTATE The type library could not be opened.
TYPE_E_WRONGTYPEKIND Type mismatch.

Comments

The caller passes in a member ID, which represents the member function whose entry description is desired. If the function has a DLL entry point, the name of the DLL that contains the function, as well as its name or ordinal identifier, are placed in the passed-in pointers allocated by the caller. If there is no DLL entry point for the function, an error is returned.

If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.

The caller should use SysFreeString() to free the BSTRs referenced by pBstrName and pBstrDllName.