ITypeLib::FindName

HRESULT FindName( 
  OLECHAR FAR*  szNameBuf,    
  unsigned long  lHashVal,    
  ITypeInfo FAR* FAR*  ppTInfo,  
  MEMBERID FAR*  rgMemId,     
  unsigned int FAR*  pcFound  
);
 

Finds occurrences of a type description in a type library. This may be used to quickly verify that a name exists in a type library.

Parameters

szNameBuf
The name to search for.
lHashVal
A hash value to speed up the search, computed by the LHashValOfNameSys function. If lHashVal = 0, a value is computed.
ppTInfo
On return, an array of pointers to the type descriptions that contain the name specified in szNameBuf. Cannot be Null.
rgMemId
An array of the MEMBERIDs of the found items; rgMemId[i] is the MEMBERID that indexes into the type description specified by ppTInfo[i]. Cannot be Null.
pcFound
On entry, indicates how many instances to look for. For example, *pcFound = 1 can be called to find the first occurrence. The search stops when one is found.

On exit, indicates the number of instances that were found. If the in and out values of *pcFound are identical, there may be more type descriptions that contain the name.

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.
TYPE_E_IOERROR The function could not write to the file.
TYPE_E_INVDATAREAD The function could not read from the file.
TYPE_E_UNSUPFORMAT The type library has an older format.
TYPE_E_INVALIDSTATE The type library could not be opened.
TYPE_E_CANTLOADLIBRARY The library or .dll file could not be loaded.
TYPE_E_ELEMENTNOTFOUND The element was not found.

Comments

Passing *pcFound = n indicates that there is enough room in the ppTInfo and rgMemId arrays for n (ptinfo, memid) pairs. The function returns MEMBERID_NIL in rgMemId[i], if the name in szNameBuf is the name of the type information in ppTInfo[i].