Partager via


Standard Font, objet

La propriété de police ambiante standard fournie par le conteneur et la propriété de police standard fournie par le contrôle fournissent tous deux un objet de police standard. Autrement dit, ces polices standard fournissent un pointeur IDispatch vers un objet de police standard.

L’objet de police est une implémentation fournie par le système d’un ensemble d’interfaces sur la prise en charge de la police GDI sous-jacente. Un objet de police est créé via la fonction API OleCreateFontIndirect en fonction d’une structure FONTDESC. L’objet police prend en charge un certain nombre de propriétés en lecture/écriture, ainsi que des méthodes personnalisées via son interface IFont, et prend en charge le même ensemble de propriétés (mais pas les méthodes) via une dispinterface IFontDisp. La dispinterface est utilisée pour les propriétés de police mentionnées précédemment. Les propriétés correspondent aux attributs de police GDI décrits dans la structure LOGFONT.

L’objet de police prend également en charge l’interface sortante IPropertyNotifySink afin qu’un client puisse déterminer quand les propriétés de police changent. Étant donné que l’objet de police prend en charge au moins une interface sortante, il implémente également IConnectionPointContainer et un point de connexion pour IPropertyNotifySink à cet effet.

L’objet de police fournit une propriété hFont qui est un handle de police Windows conforme aux autres attributs spécifiés pour la police. L’objet de police retarde la réalisation de cette police lorsque cela est possible. Par conséquent, la définition consécutive de deux propriétés sur une police n’entraîne pas la réalisation d’une police intermédiaire. En outre, en tant qu’optimisation, l’objet de police standard gère un cache de handles de police. Deux objets de police dans le même processus qui ont des propriétés identiques retournent le même handle de police. L’objet de police peut supprimer des polices de ce cache à la volonté, ce qui introduit des considérations spéciales pour les clients utilisant cette propriété hFont. Pour plus d’informations, consultez IFont ::get_hFont.

L’objet de police prend également en charge IPersistStream de sorte qu’il puisse enregistrer et charger lui-même à partir d’une instance de IStream. Tout autre objet qui utilise un objet de police en interne enregistrerait et chargeait normalement la police dans le cadre de la gestion de la persistance de l’objet.

En outre, l’objet de police prend en charge IDataObject par le biais duquel il fournit un jeu de propriétés contenant des valeurs typées pour chaque propriété de police.

propriétés de contrôle