Метод IPersist::GetClassID (objidl.h)

Извлекает идентификатор класса (CLSID) объекта .

Синтаксис

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Параметры

[out] pClassID

Указатель на расположение, которое получает ИДЕНТИФИКАТОР CLSID при возврате. CLSID — глобальный уникальный идентификатор (GUID), который уникальным образом представляет класс объектов, определяющий код, который может обрабатывать данные объекта.

Возвращаемое значение

Если метод выполнен успешно, возвращаемое значение будет S_OK. В противном случае это E_FAIL.

Комментарии

Метод GetClassID извлекает идентификатор класса (CLSID) для объекта, который используется в последующих операциях для загрузки кода конкретного объекта в контекст вызывающего объекта.

Примечания к вызывающим абонентам

Контейнерное приложение может вызвать этот метод, чтобы получить исходный идентификатор CLSID объекта, который он рассматривает как другой класс. Такой вызов будет необходим, если пользователь выполнил операцию редактирования, требующую сохранения объекта. Если контейнер сохранит его с помощью идентификатора CLSID для обработки как, исходное приложение больше не сможет редактировать объект . Как правило, в этом случае контейнер вызывает вспомогающую функцию OleSave , которая выполняет все необходимые действия. По этой причине большинству контейнерных приложений нет необходимости вызывать этот метод напрямую.

Исключением будет контейнер, предоставляющий обработчик объектов для определенных объектов. В частности, приложение-контейнер не должно получать ИДЕНТИФИКАТОР CLSID объекта, а затем использовать его для получения сведений о конкретных классах из реестра. Вместо этого контейнер должен использовать интерфейсы IOleObject и IDataObject для получения таких сведений о классах непосредственно из объекта .

Примечания для разработчиков

Как правило, реализации этого метода просто предоставляют константу CLSID для объекта . Однако если раздел реестра Объекта TreatAs был задан приложением, которое поддерживает эмуляцию (и поэтому обрабатывает объект как один из другого класса), вызов GetClassID должен предоставить идентификатор CLSID, указанный в разделе TreatAs . Дополнительные сведения об эмуляции см. в разделе CoTreatAsClass.

Когда объект находится в состоянии выполнения, обработчик по умолчанию вызывает реализацию GetClassID , которая делегирует вызов реализации в объекте . Если объект не запущен, обработчик по умолчанию вместо этого вызывает функцию ReadClassStg для считывания идентификатора CLSID, сохраненного в хранилище объекта.

При написании пользовательского обработчика объектов для объекта может потребоваться просто делегировать этот метод реализации обработчика по умолчанию (см. oleCreateDefaultHandler).

Заметки о моникере URL-адреса

Этот метод возвращает CLSID_StdURLMoniker.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header objidl.h

См. также раздел

IBaseFilter

IPersist

IPersistFolder