Metodo IPersist::GetClassID (objidl.h)

Recupera l'identificatore di classe (CLSID) dell'oggetto .

Sintassi

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Parametri

[out] pClassID

Puntatore alla posizione che riceve il CLSID sul ritorno. Il CLSID è un identificatore univoco globale (GUID) che rappresenta in modo univoco una classe di oggetto che definisce il codice che può modificare i dati dell'oggetto.

Valore restituito

Se il metodo ha esito positivo, il valore restituito è S_OK. In caso contrario, è E_FAIL.

Commenti

Il metodo GetClassID recupera l'identificatore di classe (CLSID) per un oggetto, usato nelle operazioni successive per caricare codice specifico dell'oggetto nel contesto del chiamante.

Note ai chiamanti

Un'applicazione contenitore può chiamare questo metodo per recuperare il CLSID originale di un oggetto che tratta come classe diversa. Tale chiamata sarebbe necessaria se un utente ha eseguito un'operazione di modifica che ha richiesto il salvataggio dell'oggetto. Se il contenitore doveva salvarlo usando CLSID, l'applicazione originale non sarebbe più in grado di modificare l'oggetto. In genere, in questo caso, il contenitore chiama la funzione helper OleSave , che esegue tutti i passaggi necessari. Per questo motivo, la maggior parte delle applicazioni contenitore non deve chiamare direttamente questo metodo.

L'eccezione è un contenitore che fornisce un gestore oggetti per determinati oggetti. In particolare, un'applicazione contenitore non deve ottenere CLSID di un oggetto e quindi usarla per recuperare informazioni specifiche della classe dal Registro di sistema. Il contenitore deve invece usare interfacce IOleObject e IDataObject per recuperare tali informazioni specifiche della classe direttamente dall'oggetto.

Note per gli implementatori

In genere, le implementazioni di questo metodo forniscono semplicemente una costante CLSID per un oggetto. Se, tuttavia, la chiave del Registro di sistema TreatAs dell'oggetto è stata impostata da un'applicazione che supporta l'emulazione (e quindi tratta l'oggetto come una di una classe diversa), una chiamata a GetClassID deve fornire il CLSID specificato nella chiave TreatAs . Per altre informazioni sull'emulazione, vedere CoTreatAsClass.

Quando un oggetto si trova nello stato in esecuzione, il gestore predefinito chiama un'implementazione di GetClassID che delega la chiamata all'implementazione nell'oggetto. Quando l'oggetto non è in esecuzione, il gestore predefinito chiama invece la funzione ReadClassStg per leggere CLSID salvata nell'archiviazione dell'oggetto.

Se si scrive un gestore oggetti personalizzato per l'oggetto, è possibile delegare semplicemente questo metodo all'implementazione del gestore predefinito (vedere OleCreateDefaultHandler).

Note sul moniker URL

Questo metodo restituisce CLSID_StdURLMoniker.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objidl.h

Vedi anche

IBaseFilter

Ipersist

IPersistFolder