AfxOleRegisterControlClass

BOOL AFXAPI AfxOleRegisterControlClass (HINSTANCE hInstance, REFCLSID clsid, LPCTSTR pszProgID, UINT idTypeName, UINT idBitmap, int nRegFlags, DWORD dwMiscStatus, REFGUID tlid, mot wVerMajor, mot wVerMinor );

# include lt;afxctl.h>

Valeur de retour

Différent de zéro si la classe de contrôle a été enregistrée ; sinon 0.

Paramètres

hInstance

Le handle d'instance du module associé à la classe du contrôle.

clsid

L'ID de classe unique du contrôle.

pszProgID

L'ID de programme unique du contrôle.

idTypeName

L'ID de ressource de chaîne qui contient un nom lisible par l'utilisateur pour le contrôle.

idBitmap

L'ID de ressource de l'image bitmap utilisée pour représenter le contrôle OLE dans une barre d'outils ou la palette.

nRegFlags

Contient un ou plusieurs des indicateurs suivants:

&Notenbsp ;  Dans les versions MFC avant de MFC 4.2, le paramètre denRegFlags intétait un paramètre BOOL , bInsertable, accordé ou refusé le contrôle doit être inséré dans la boîte de dialogue Insérer un objet .

dwMiscStatus

Contient un ou plusieurs des indicateurs suivants (pour une description des indicateurs, de voir l'énumération OLEMISC , la référence du programmeur OLE de) statut:

tlid

L'ID unique de la classe control.

wVerMajor

Le numéro de version principale de la classe control.

wVerMinor

Le numéro de version mineure de la classe control.

Remarques

Enregistre la classe de contrôle avec la base de registres de Windows. Cela permet au contrôle d'être utilisé dans des contenants qui sont OLE-contrôle conscient. AfxOleRegisterControlClass met à jour le registre avec le nom et l'emplacement sur le système du contrôle et définit également le modèle de thread du contrôle prend en charge dans le registre. Pour plus d'informations, consultez Technical Note 64, « Appartement-modèle Threading dans OLE contrôles, » et sur les processus et les Threads dans le SDK Win32.

Exemple

/ / L'implémentation de la fonction membre de classe COleObjectFactory::UpdateRegistry / /
BOOL CMyApartmentAwareCtrl::CApartmentCtrlFactory::UpdateRegistry(BOOL bRegister)
{
/ / TODO : vérifiez que votre contrôle suit / / appartement-modèle de filetage des règles.
/ / Désigner MFC Tech&Note 64 pour plus d'informations.
/ / Si votre commande n'est pas conforme à la / / règles d'appartement-modèle, puis vous devez modifier les
/ / code ci-dessous, changer le paramètre 6 de
/ / afxRegInsertable | afxRegApartmentThreading
/ / afxRegInsertable.

nbsp ; Si (bRegister)
      retour AfxOleRegisterControlClass()
         AfxGetInstanceHandle(),
         m_clsid,
         m_lpszProgID,
         IDS_APARTMENT,
         IDB_APARTMENT,
         afxRegInsertable | afxRegApartmentThreading,
         _dwApartmentOleMisc,
         _tlid,
         _wVerMajor,
         _wVerMinor) ;
   autre
      Return AfxOleUnregisterClass (m_clsid, m_lpszProgID)

L'exemple ci-dessus illustre comment AfxOleRegisterControlClass est appelée avec l'indicateur pour l'insérer et l'indicateur pour le modèle de l'appartement or afin de créer la sixième paramètre:

   afxRegInsertable | afxRegApartmentThreading

Le contrôle s'affichera dans la boîte de dialogue Insérer un objet pour les conteneurs activés, et il sera appartement modèle-conscient. Contrôles de modèles-aware appartement doivent s'assurer de cette classe statique, les données sont protégées par des verrous, afin que si un contrôle dans un appartement accède à des données statiques, il n'est pas désactivé par le Planificateur avant c'est fini, et une autre instance de la classe même commence à utiliser les mêmes données statiques. Tout accès aux données statiques seront entourées par le code de section critique.

Voir aussi  ;AfxOleRegisterPropertyPageClass, AfxOleRegisterTypeLib, AfxOleUnregisterClass, AfxOleUnregisterTypeLib

Index