Поделиться через


Моникеры классов

Хотя классы обычно идентифицируются непосредственно с clSID для функций, таких как CoCreateInstance или CoGetClassObject, классы также могут быть идентифицированы с моникером класса. Моникеры классов привязываются к объекту класса класса, для которого они созданы.

Возможность идентификации классов с моникером поддерживает полезные операции, которые в противном случае неуправляемы. Например, моникеры файлов традиционно поддерживают богатую привязку только к классу, связанному с классом файла, к которым они ссылаются; Моникер к файлу Excel привязывается к экземпляру объекта Excel, а моникер с изображением GIF привязывается к экземпляру зарегистрированного в настоящее время обработчика GIF. Моникер класса позволяет указать класс, который вы хотите использовать для управления файлом с помощью моникера файла. Моникер класса для класса трехмерной диаграммы, состоящий из моникера в файл Excel, выдает моникер, который привязывается к экземпляру трехмерного объекта диаграммы и инициализирует объект с содержимым файла Excel.

Поэтому моникеры класса наиболее полезны в композиции с другими типами моникеров, таких как моникеры файлов или моникеры элементов.

Моникеры класса также могут быть составлены справа от моникеров, поддерживающих привязку к интерфейсу IClassActivator. При создании таким образом IClassActivator просто предоставляет доступ к объекту класса и экземплярам класса через IClassActivator::GetClassObject. Моникеры классов можно определить с помощью IMoniker::IsSystemMoniker, который возвращает MKSYS_CLASSMONIKER в pdwMksys.

Программисты обычно создают моникеры классов с помощью функции CreateClassMoniker или с помощью MkParseDisplayName. (Дополнительные сведения см. в разделе IMoniker::P arseDisplayName.)

антимникеров

составные моникеры

Monikers

элемента Моникеры

Указатели Моникеров