Моникеры классов
Хотя классы обычно идентифицируются непосредственно с CLSID для таких функций, как CoCreateInstance или CoGetClassObject, классы теперь могут быть идентифицированы с моникером класса, называемым моникером класса. Моникеры классов привязываются к объекту класса класса, для которого они созданы.
Возможность идентификации классов с моникером поддерживает полезные операции, которые в противном случае неуправляемы. Например, моникеры файлов традиционно поддерживают богатую привязку только к классу, связанному с классом файла, к которым они ссылаются; Моникер к файлу Excel привязывается к экземпляру объекта Excel, а моникер с изображением GIF привязывается к экземпляру зарегистрированного в настоящее время обработчика GIF. Моникер класса позволяет указать класс, который вы хотите использовать для управления файлом с помощью моникера файла. Моникер класса для класса трехмерной диаграммы, состоящий из моникера в файл Excel, выдает моникер, который привязывается к экземпляру трехмерного объекта диаграммы и инициализирует объект с содержимым файла Excel.
Поэтому моникеры класса наиболее полезны в композиции с другими типами моникеров, таких как моникеры файлов или моникеры элементов.
Моникеры класса также могут быть составлены справа от моникеров, поддерживающих привязку к интерфейсу IClassActivator . При создании таким образом IClassActivator просто предоставляет доступ к объекту класса и экземплярам класса через IClassActivator::GetClassObject. Моникеры класса можно определить с помощью IMoniker::IsSystemMoniker, который возвращает MKSYS_CLASSMONIKER в pdwMksys.
Программисты обычно создают моникеры классов с помощью функции CreateClassMoniker или с помощью MkParseDisplayName. (См. раздел IMoniker::P arseDisplayName для получения сведений.)
См. также