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