Partager via


Méthode IClassFactory::LockServer (unknwnbase.h)

Verrouille une application objet ouverte en mémoire. Cela permet de créer des instances plus rapidement.

Syntaxe

HRESULT LockServer(
  [in] BOOL fLock
);

Paramètres

[in] fLock

Si la valeur est TRUE, incrémente le nombre de verrous ; si la valeur est FALSE, décrémente le nombre de verrous.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL et S_OK.

Remarques

IClassFactory::LockServer contrôle si le serveur d’un objet est conservé en mémoire. Le maintien de l’application en mémoire permet de créer des instances plus rapidement.

Remarques aux appelants

La plupart des clients n’ont pas besoin d’appeler cette méthode. Il est fourni uniquement pour les clients qui nécessitent des performances spéciales lors de la création de plusieurs instances de leurs objets.

Remarques aux implémenteurs

Si le nombre de verrous est égal à zéro, qu’il n’y a plus d’objets en cours d’utilisation et que l’application n’est pas sous le contrôle de l’utilisateur, le serveur peut être fermé. Une façon d’implémenter LockServer consiste à appeler la fonction CoLockObjectExternal .

Le processus qui verrouille l’application objet est responsable de son déverrouillage. Une fois l’objet de classe libéré, aucun mécanisme ne garantit la connexion de l’appelant à la même classe ultérieurement (comme dans le cas où un objet de classe est inscrit en tant qu’objet à usage unique). Il est important de compter tous les appels, pas seulement le dernier, vers LockServer, car les appels doivent être équilibrés avant d’essayer de libérer le pointeur vers l’interface IClassFactory sur l’objet de classe ou les résultats d’une erreur. Pour chaque appel à LockServer avec fLock défini sur TRUE, il doit y avoir un appel à LockServer avec fLock défini sur FALSE. Lorsque le nombre de verrous et le nombre de références d’objets de classe sont tous deux nuls, l’objet de classe peut être libéré.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête unknwnbase.h (include Unknwn.h)

Voir aussi

CoLockObjectExternal

IClassFactory