Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

LoadTypeLib Function

Loads and registers a type library.

HRESULT LoadTypeLib(  
  const OLECHAR FAR  *szFile,       
  ITypeLib FAR* FAR  *pptlib  
);

szFile

Contains the name of the file from whichLoadTypeLib should attempt to load a type library.

pptlib

On return, contains a pointer to a pointer to the loaded type library.

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_INVALIDSTATE

The type library could not be opened.

TYPE_E_INVDATAREAD

The function could not read from the file.

TYPE_E_UNSUPFORMAT

The type library has an older format.

TYPE_E_UNKNOWNLCID

The LCID could not be found in the OLE-supported DLLs.

TYPE_E_CANTLOADLIBRARY

The type library or DLL could not be loaded.

Other return codes

All FACILITY_STORAGE errors can be returned.

The function LoadTypeLib loads a type library (usually created with MkTypLib) that is stored in the specified file. If szFilespecifies only a file name without any path, LoadTypeLib searches for the file and proceeds as follows:

  • If the file is a stand-alone type library implemented by Typelib.dll, the library is loaded directly.

  • If the file is a DLL or an executable file, it is loaded. By default, the type library is extracted from the first resource of type ITypeLib. To load a different type of library resource, append an integer index to szFile. For example:

    ITypeLib *ptlib;
    LoadTypeLib("C:\\MONTANA\\EXE\\MFA.EXE\\3", &ptlib) 
    

    This statement loads the type library resource 3 from the file Mfa.exe file.

  • If the file is none of the above, the file name is parsed into a moniker (an object that represents a file-based link source), and then bound to the moniker. This approach allows LoadTypeLibto be used on foreign type libraries, including in-memory type libraries. Foreign type libraries cannot reside in a DLL or an executable file. For more information on monikers, see the COM Programmer's Reference in the Platform SDK.

If the type library is already loaded, LoadTypeLib increments the type library's reference count and returns a pointer to the type library.

For backward compatibility, LoadTypeLib will register the type library if the path is not specified in the szFile parameter. LoadTypeLib will not register the type library if the path of the type library is specified. It is recommended that RegisterTypeLib be used to register a type library.

Show:
© 2015 Microsoft