In general, a moniker is a name or a nickname and, in the simplest terms, that is what it is in computer terminology as well. A moniker is an object (or component) in Microsoft's Component Object Model (COM) that refers to a specific instance of another object. Monikers originated in Microsoft's Object Linking and Embedding (OLE) technology as a means of linking objects.
A moniker may refer to any single object, or may be a composite made of a number of separate monikers, each of which refers to a particular instantiation of an object. The moniker is sometimes referred to as an "intelligent name," because it retains information about how to create, initialize and bind to a single instance of an object. Once created, the moniker holds this information, as well as information about the object's states in that specific instantiation.
Since COM is not language-specific, a moniker can be used with any programming language. The programmer gives the instantiation of the object a name. By calling the moniker in code, a programmer can refer to the same object with the same states. If, for example, a moniker is created for a query, the programmer can reuse the query simply by calling the moniker in the code, because the moniker itself has the necessary information.